From dc97f7d40182b7533f4cb037ceac55164a08ff04 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sun, 12 May 2019 16:42:49 -0700 Subject: [PATCH] Fix TODOs in Optional TNT doesn't move in water Turns out the doWaterMovement method was never called. Moved the tracker updates into tick() and delete doWaterMovement --- ...5-Optional-TNT-doesn-t-move-in-water.patch | 104 ++++++------------ ...llow-entities-to-ride-themselves-572.patch | 6 +- .../0164-Entity-fromMobSpawner.patch | 12 +- ...-more-information-to-Entity.toString.patch | 6 +- .../0305-Improve-death-events.patch | 24 ++-- ...arseException-in-Entity-and-TE-names.patch | 14 +-- ...e-Dimension-NBT-field-in-Entity-data.patch | 6 +- ...36-Reset-players-airTicks-on-respawn.patch | 6 +- ...entity-dismount-during-teleportation.patch | 18 +-- ...371-Add-LivingEntity-getTargetEntity.patch | 10 +- .../0373-Entity-getEntitySpawnReason.patch | 10 +- 11 files changed, 92 insertions(+), 124 deletions(-) diff --git a/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch b/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch index c3e126bfd3..939f0f5f7b 100644 --- a/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch +++ b/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch @@ -1,11 +1,11 @@ -From 530d6b6635e21f94b2334b735f3c773ce70a947c Mon Sep 17 00:00:00 2001 +From a5cc6d0bdc188837b612dbfdfe57b0b8f3fc351e Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 22 May 2016 20:20:55 -0500 Subject: [PATCH] Optional TNT doesn't move in water diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 805aa56999..92ab55182f 100644 +index 805aa5699..92ab55182 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -2,7 +2,6 @@ package com.destroystokyo.paper; @@ -32,32 +32,10 @@ index 805aa56999..92ab55182f 100644 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 2f4e56fc56..2f1cd47619 100644 +index 2f4e56fc5..5d11348df 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -107,7 +107,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke - public double locX; - public double locY; - public double locZ; -- private Vec3D mot; -+ protected Vec3D mot; // Paper - private -> protected - public float yaw; - public float pitch; - public float lastYaw; -@@ -1103,6 +1103,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke - } - - public boolean au() { -+ // Paper start -+ return this.doWaterMovement(); -+ } -+ -+ public boolean doWaterMovement() { -+ // Paper end - return this.isInWater() || this.l(); - } - -@@ -2640,6 +2646,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2640,6 +2640,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean bD() { @@ -71,10 +49,39 @@ index 2f4e56fc56..2f1cd47619 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -index e0535604b6..723ed45d5e 100644 +index e0535604b..baeb85142 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -@@ -149,4 +149,50 @@ public class EntityTNTPrimed extends Entity { +@@ -80,7 +80,27 @@ public class EntityTNTPrimed extends Entity { + this.ax(); + this.world.addParticle(Particles.SMOKE, this.locX, this.locY + 0.5D, this.locZ, 0.0D, 0.0D, 0.0D); + } +- ++ // Paper start - Optional prevent TNT from moving in water ++ if (!this.dead && this.inWater && this.world.paperConfig.preventTntFromMovingInWater) { ++ /* ++ * Author: Jedediah Smith ++ */ ++ // Send position and velocity updates to nearby players on every tick while the TNT is in water. ++ // This does pretty well at keeping their clients in sync with the server. ++ PlayerChunkMap.EntityTracker ete = this.tracker; ++ if (ete != null) { ++ PacketPlayOutEntityVelocity velocityPacket = new PacketPlayOutEntityVelocity(this); ++ PacketPlayOutEntityTeleport positionPacket = new PacketPlayOutEntityTeleport(this); ++ ++ ete.trackedPlayers.stream() ++ .filter(viewer -> (viewer.locX - this.locX) * (viewer.locY - this.locY) * (viewer.locZ - this.locZ) < 16 * 16) ++ .forEach(viewer -> { ++ viewer.playerConnection.sendPacket(velocityPacket); ++ viewer.playerConnection.sendPacket(positionPacket); ++ }); ++ } ++ } ++ // Paper end + } + + private void explode() { +@@ -149,4 +169,11 @@ public class EntityTNTPrimed extends Entity { public Packet N() { return new PacketPlayOutSpawnEntity(this); } @@ -84,49 +91,10 @@ index e0535604b6..723ed45d5e 100644 + public boolean pushedByWater() { + return !world.paperConfig.preventTntFromMovingInWater && super.pushedByWater(); + } -+ -+ /** -+ * Author: Jedediah Smith -+ */ -+ @Override -+ public boolean doWaterMovement() { -+ if (!world.paperConfig.preventTntFromMovingInWater) return super.doWaterMovement(); -+ -+ // Preserve velocity while calling the super method -+ // TODO test this patch... -+// double oldMotX = this.motX; -+// double oldMotY = this.motY; -+// double oldMotZ = this.motZ; -+// -+// super.doWaterMovement(); -+// -+// this.motX = oldMotX; -+// this.motY = oldMotY; -+// this.motZ = oldMotZ; -+ -+ if (this.inWater) { -+ // Send position and velocity updates to nearby players on every tick while the TNT is in water. -+ // This does pretty well at keeping their clients in sync with the server. -+ PlayerChunkMap.EntityTracker ete = this.tracker; // TODO review this (this field isn't written to) -+ if (ete != null) { -+ PacketPlayOutEntityVelocity velocityPacket = new PacketPlayOutEntityVelocity(this); -+ PacketPlayOutEntityTeleport positionPacket = new PacketPlayOutEntityTeleport(this); -+ -+ ete.trackedPlayers.stream() -+ .filter(viewer -> (viewer.locX - this.locX) * (viewer.locY - this.locY) * (viewer.locZ - this.locZ) < 16 * 16) -+ .forEach(viewer -> { -+ viewer.playerConnection.sendPacket(velocityPacket); -+ viewer.playerConnection.sendPacket(positionPacket); -+ }); -+ } -+ } -+ -+ return this.inWater; -+ } + // Paper end } diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index aaf3a54b08..afd8748da8 100644 +index aaf3a54b0..afd8748da 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -36,7 +36,7 @@ public class EntityTrackerEntry { diff --git a/Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch b/Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch index 64ce665e47..83590bca72 100644 --- a/Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch +++ b/Spigot-Server-Patches/0143-Don-t-allow-entities-to-ride-themselves-572.patch @@ -1,14 +1,14 @@ -From 2ac056ffdc0345a4c864592cc8b401220649867f Mon Sep 17 00:00:00 2001 +From 3763f45c6d542d371acea2adcc6bbe3477d01efc Mon Sep 17 00:00:00 2001 From: Alfie Cleveland Date: Sun, 8 Jan 2017 04:31:36 +0000 Subject: [PATCH] Don't allow entities to ride themselves - #572 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index e74baac5bc..92e450f668 100644 +index cce163769..c67028524 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1994,6 +1994,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1988,6 +1988,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } protected boolean addPassenger(Entity entity) { // CraftBukkit diff --git a/Spigot-Server-Patches/0164-Entity-fromMobSpawner.patch b/Spigot-Server-Patches/0164-Entity-fromMobSpawner.patch index 151517e1c3..bb6f903678 100644 --- a/Spigot-Server-Patches/0164-Entity-fromMobSpawner.patch +++ b/Spigot-Server-Patches/0164-Entity-fromMobSpawner.patch @@ -1,11 +1,11 @@ -From 833f6f6f14af57ed256f90d2ec87367e89490d0c Mon Sep 17 00:00:00 2001 +From 4a489d4824f988d677e4f09f84724af2bd6da02c Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 18 Jun 2017 18:17:05 -0500 Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 14fbea5460..f2a001c28b 100644 +index 82cd8995f..9bec96f4a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -184,6 +184,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -16,7 +16,7 @@ index 14fbea5460..f2a001c28b 100644 protected int numCollisions = 0; // Paper public void inactiveTick() { } // Spigot end -@@ -1587,6 +1588,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1581,6 +1582,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (this.origin != null) { nbttagcompound.set("Paper.Origin", this.createList(origin.getX(), origin.getY(), origin.getZ())); } @@ -27,7 +27,7 @@ index 14fbea5460..f2a001c28b 100644 // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -1714,6 +1719,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1708,6 +1713,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (!originTag.isEmpty()) { origin = new Location(world.getWorld(), originTag.getDoubleAt(0), originTag.getDoubleAt(1), originTag.getDoubleAt(2)); } @@ -37,7 +37,7 @@ index 14fbea5460..f2a001c28b 100644 } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -index 6499d27e63..2b2af2daa7 100644 +index 6499d27e6..2b2af2daa 100644 --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java @@ -133,6 +133,7 @@ public abstract class MobSpawnerAbstract { @@ -49,7 +49,7 @@ index 6499d27e63..2b2af2daa7 100644 if ( entity.world.spigotConfig.nerfSpawnerMobs ) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 0b7fc359d9..4af2527d63 100644 +index 0b7fc359d..4af2527d6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1047,5 +1047,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/Spigot-Server-Patches/0257-add-more-information-to-Entity.toString.patch b/Spigot-Server-Patches/0257-add-more-information-to-Entity.toString.patch index fc7d79c156..70d8aa8c98 100644 --- a/Spigot-Server-Patches/0257-add-more-information-to-Entity.toString.patch +++ b/Spigot-Server-Patches/0257-add-more-information-to-Entity.toString.patch @@ -1,4 +1,4 @@ -From c1dc8df7250f1045ac10f88413451b8bc08b6c9d Mon Sep 17 00:00:00 2001 +From 04ade8056728004873333103857f46687dc9897d Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 19 Jul 2018 01:13:28 -0400 Subject: [PATCH] add more information to Entity.toString() @@ -6,10 +6,10 @@ Subject: [PATCH] add more information to Entity.toString() UUID, ticks lived, valid, dead diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f2a001c28b..0088d6088a 100644 +index 9bec96f4a..f99624d48 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2443,7 +2443,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2437,7 +2437,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public String toString() { diff --git a/Spigot-Server-Patches/0305-Improve-death-events.patch b/Spigot-Server-Patches/0305-Improve-death-events.patch index 8f1bef1d4b..21bcda3967 100644 --- a/Spigot-Server-Patches/0305-Improve-death-events.patch +++ b/Spigot-Server-Patches/0305-Improve-death-events.patch @@ -1,4 +1,4 @@ -From 87f19f8f0e3245d63d69328ac2941f934d31a857 Mon Sep 17 00:00:00 2001 +From be17548de6f7c83b90722b7a747a8cc7d220d047 Mon Sep 17 00:00:00 2001 From: Phoenix616 Date: Tue, 21 Aug 2018 01:39:35 +0100 Subject: [PATCH] Improve death events @@ -15,7 +15,7 @@ items and experience which is otherwise only properly possible by using internal code. diff --git a/src/main/java/net/minecraft/server/CombatTracker.java b/src/main/java/net/minecraft/server/CombatTracker.java -index 20db76abd7..a148cd437c 100644 +index 20db76abd..a148cd437 100644 --- a/src/main/java/net/minecraft/server/CombatTracker.java +++ b/src/main/java/net/minecraft/server/CombatTracker.java @@ -175,6 +175,7 @@ public class CombatTracker { @@ -27,10 +27,10 @@ index 20db76abd7..a148cd437c 100644 int i = this.f ? 300 : 100; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 9bfc725a2c..b406dc5232 100644 +index 71d557a68..60d43bb50 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1469,6 +1469,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1463,6 +1463,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } @@ -38,7 +38,7 @@ index 9bfc725a2c..b406dc5232 100644 public void a(Entity entity, int i, DamageSource damagesource) { if (entity instanceof EntityPlayer) { CriterionTriggers.c.a((EntityPlayer) entity, this, damagesource); -@@ -2361,6 +2362,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2355,6 +2356,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.fallDistance = 0.0F; } @@ -47,7 +47,7 @@ index 9bfc725a2c..b406dc5232 100644 protected void i(double d0, double d1, double d2) { diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index 7031dd0e4c..f6dc96434b 100644 +index 5c35909eb..19ba4e059 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java @@ -675,7 +675,8 @@ public class EntityArmorStand extends EntityLiving { @@ -61,7 +61,7 @@ index 7031dd0e4c..f6dc96434b 100644 } diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java -index 917d603507..95d6b3f369 100644 +index 917d60350..95d6b3f36 100644 --- a/src/main/java/net/minecraft/server/EntityFox.java +++ b/src/main/java/net/minecraft/server/EntityFox.java @@ -597,15 +597,25 @@ public class EntityFox extends EntityAnimal { @@ -94,7 +94,7 @@ index 917d603507..95d6b3f369 100644 public static boolean a(EntityFox entityfox, EntityLiving entityliving) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 78b7ab59b9..88cb1ac8f0 100644 +index 78b7ab59b..88cb1ac8f 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -85,7 +85,7 @@ public abstract class EntityLiving extends Entity { @@ -249,7 +249,7 @@ index 78b7ab59b9..88cb1ac8f0 100644 return this.isBaby() ? (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.5F : (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 870ef557a2..a3f5919fe8 100644 +index 32ac372bc..c5621d9dc 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -75,6 +75,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -300,7 +300,7 @@ index 870ef557a2..a3f5919fe8 100644 } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java -index 73cb64e09d..9f317ff2e8 100644 +index 73cb64e09..9f317ff2e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftSound.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java @@ -806,6 +806,22 @@ public enum CraftSound { @@ -327,7 +327,7 @@ index 73cb64e09d..9f317ff2e8 100644 this.minecraftKey = minecraftKey; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 53d61790c5..6a390c1146 100644 +index 53d61790c..6a390c114 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1713,7 +1713,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -348,7 +348,7 @@ index 53d61790c5..6a390c1146 100644 public void injectScaledMaxHealth(Collection collection, boolean force) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 23c4b93466..aafd71d65c 100644 +index da2a440c1..49be89158 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -720,9 +720,16 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0317-Catch-JsonParseException-in-Entity-and-TE-names.patch b/Spigot-Server-Patches/0317-Catch-JsonParseException-in-Entity-and-TE-names.patch index d6566d3c35..c37a2b9d78 100644 --- a/Spigot-Server-Patches/0317-Catch-JsonParseException-in-Entity-and-TE-names.patch +++ b/Spigot-Server-Patches/0317-Catch-JsonParseException-in-Entity-and-TE-names.patch @@ -1,4 +1,4 @@ -From 165bf7b900c559ab01d80ea169e175e417093290 Mon Sep 17 00:00:00 2001 +From c9d621cca01f33243a1433499213955a892bc3cd Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 22 Sep 2018 15:56:59 -0400 Subject: [PATCH] Catch JsonParseException in Entity and TE names @@ -13,7 +13,7 @@ Shulkers) may need to be changed in order for it to re-save properly No more crashing though. diff --git a/src/main/java/net/minecraft/server/CommandBlockListenerAbstract.java b/src/main/java/net/minecraft/server/CommandBlockListenerAbstract.java -index 4b7aefb7a7..9e568d5d15 100644 +index 4b7aefb7a..9e568d5d1 100644 --- a/src/main/java/net/minecraft/server/CommandBlockListenerAbstract.java +++ b/src/main/java/net/minecraft/server/CommandBlockListenerAbstract.java @@ -56,7 +56,7 @@ public abstract class CommandBlockListenerAbstract implements ICommandListener { @@ -26,10 +26,10 @@ index 4b7aefb7a7..9e568d5d15 100644 if (nbttagcompound.hasKeyOfType("TrackOutput", 1)) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b406dc5232..c85cbe2af8 100644 +index 60d43bb50..969e7a111 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1653,7 +1653,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1647,7 +1647,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.setPosition(this.locX, this.locY, this.locZ); this.setYawPitch(this.yaw, this.pitch); if (nbttagcompound.hasKeyOfType("CustomName", 8)) { @@ -39,7 +39,7 @@ index b406dc5232..c85cbe2af8 100644 this.setCustomNameVisible(nbttagcompound.getBoolean("CustomNameVisible")); diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index d2019fb74c..8cf2602828 100644 +index 6d278a0da..ec3732193 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -339,4 +339,19 @@ public final class MCUtil { @@ -63,7 +63,7 @@ index d2019fb74c..8cf2602828 100644 + } } diff --git a/src/main/java/net/minecraft/server/TileEntityBanner.java b/src/main/java/net/minecraft/server/TileEntityBanner.java -index 1f26d8a022..12264c4d03 100644 +index 1f26d8a02..12264c4d0 100644 --- a/src/main/java/net/minecraft/server/TileEntityBanner.java +++ b/src/main/java/net/minecraft/server/TileEntityBanner.java @@ -57,7 +57,7 @@ public class TileEntityBanner extends TileEntity implements INamableTileEntity { @@ -76,7 +76,7 @@ index 1f26d8a022..12264c4d03 100644 if (this.hasWorld()) { diff --git a/src/main/java/net/minecraft/server/TileEntityContainer.java b/src/main/java/net/minecraft/server/TileEntityContainer.java -index 3590b4e317..ea7d5a430a 100644 +index 3590b4e31..ea7d5a430 100644 --- a/src/main/java/net/minecraft/server/TileEntityContainer.java +++ b/src/main/java/net/minecraft/server/TileEntityContainer.java @@ -17,7 +17,7 @@ public abstract class TileEntityContainer extends TileEntity implements IInvento diff --git a/Spigot-Server-Patches/0320-Ignore-Dimension-NBT-field-in-Entity-data.patch b/Spigot-Server-Patches/0320-Ignore-Dimension-NBT-field-in-Entity-data.patch index 4aa6fedac9..a46139260a 100644 --- a/Spigot-Server-Patches/0320-Ignore-Dimension-NBT-field-in-Entity-data.patch +++ b/Spigot-Server-Patches/0320-Ignore-Dimension-NBT-field-in-Entity-data.patch @@ -1,4 +1,4 @@ -From 3ae1dc7b8e3d26ec9aee3c24b1345eda01e6a14c Mon Sep 17 00:00:00 2001 +From e1c0f3575fee37a5f1b2ed2a4d83506563fde55c Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 27 Sep 2018 00:08:31 -0400 Subject: [PATCH] Ignore Dimension NBT field in Entity data @@ -14,10 +14,10 @@ DimensionManager set to the world it is being placed into. This fixes corrupt entities breaking chunk saving in custom worlds. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c85cbe2af8..af26b4bffb 100644 +index 969e7a111..941d4eae8 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1638,7 +1638,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1632,7 +1632,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.setAirTicks(nbttagcompound.getShort("Air")); this.onGround = nbttagcompound.getBoolean("OnGround"); if (nbttagcompound.hasKey("Dimension")) { diff --git a/Spigot-Server-Patches/0336-Reset-players-airTicks-on-respawn.patch b/Spigot-Server-Patches/0336-Reset-players-airTicks-on-respawn.patch index 4242e834ff..6876e97c59 100644 --- a/Spigot-Server-Patches/0336-Reset-players-airTicks-on-respawn.patch +++ b/Spigot-Server-Patches/0336-Reset-players-airTicks-on-respawn.patch @@ -1,14 +1,14 @@ -From 9d17483d9365afeef430427bbaf7a47ef7670843 Mon Sep 17 00:00:00 2001 +From 7a0f04ee81f62b896a32dc69570a183706171816 Mon Sep 17 00:00:00 2001 From: GreenMeanie Date: Sat, 20 Oct 2018 22:34:02 -0400 Subject: [PATCH] Reset players airTicks on respawn diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c7e5539dd..60fac7757 100644 +index 941d4eae8..ff1488389 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2274,7 +2274,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2268,7 +2268,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } diff --git a/Spigot-Server-Patches/0347-force-entity-dismount-during-teleportation.patch b/Spigot-Server-Patches/0347-force-entity-dismount-during-teleportation.patch index d595e3686d..b6cdc09fed 100644 --- a/Spigot-Server-Patches/0347-force-entity-dismount-during-teleportation.patch +++ b/Spigot-Server-Patches/0347-force-entity-dismount-during-teleportation.patch @@ -1,4 +1,4 @@ -From 3bf62b0b605808c72f1bf7f47e5b6a1277813f56 Mon Sep 17 00:00:00 2001 +From 5e42d9e4061851b4ff927c800f3c1add6c957642 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 15 Nov 2018 13:38:37 +0000 Subject: [PATCH] force entity dismount during teleportation @@ -20,10 +20,10 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7f4e18c991..5068511111 100644 +index ff1488389..b1ab590d1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1996,12 +1996,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1990,12 +1990,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } @@ -41,7 +41,7 @@ index 7f4e18c991..5068511111 100644 } } -@@ -2052,7 +2055,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2046,7 +2049,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return true; // CraftBukkit } @@ -53,7 +53,7 @@ index 7f4e18c991..5068511111 100644 if (entity.getVehicle() == this) { throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { -@@ -2062,7 +2068,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2056,7 +2062,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) { VehicleExitEvent event = new VehicleExitEvent( (Vehicle) getBukkitEntity(), @@ -62,7 +62,7 @@ index 7f4e18c991..5068511111 100644 ); Bukkit.getPluginManager().callEvent(event); CraftEntity craftn = (CraftEntity) entity.getBukkitEntity().getVehicle(); -@@ -2073,7 +2079,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2067,7 +2073,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // CraftBukkit end // Spigot start @@ -72,7 +72,7 @@ index 7f4e18c991..5068511111 100644 if (event.isCancelled()) { return false; diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index f17c1c54bf..e811a29175 100644 +index f17c1c54b..e811a2917 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -937,9 +937,11 @@ public abstract class EntityHuman extends EntityLiving { @@ -91,7 +91,7 @@ index f17c1c54bf..e811a29175 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 4f7ebe3642..a9d7eea368 100644 +index 88cb1ac8f..3e819f540 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2661,11 +2661,13 @@ public abstract class EntityLiving extends Entity { @@ -112,7 +112,7 @@ index 4f7ebe3642..a9d7eea368 100644 this.B(entity); } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 14710abe1a..d23178331e 100644 +index f5244de49..0d3dba95b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -997,11 +997,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/Spigot-Server-Patches/0371-Add-LivingEntity-getTargetEntity.patch b/Spigot-Server-Patches/0371-Add-LivingEntity-getTargetEntity.patch index 952c1b3d8f..9cf918f482 100644 --- a/Spigot-Server-Patches/0371-Add-LivingEntity-getTargetEntity.patch +++ b/Spigot-Server-Patches/0371-Add-LivingEntity-getTargetEntity.patch @@ -1,4 +1,4 @@ -From ca4d62e9d537d9d2bbee183c3730cf5788e3fd20 Mon Sep 17 00:00:00 2001 +From 0d182f9394258fa2098734587c774a3a81eef263 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 22 Sep 2018 00:33:08 -0500 Subject: [PATCH] Add LivingEntity#getTargetEntity @@ -46,10 +46,10 @@ index b38fc50bb..d02c77664 100644 double[] adouble = new double[] { 1.0D}; double d0 = vec3d1.x - vec3d.x; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 506851111..1cb96685a 100644 +index b1ab590d1..0adf4b69a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1449,6 +1449,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1443,6 +1443,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.c(f - 90.0F, f1); } @@ -57,7 +57,7 @@ index 506851111..1cb96685a 100644 public Vec3D j(float f) { if (f == 1.0F) { return new Vec3D(this.locX, this.locY + (double) this.getHeadHeight(), this.locZ); -@@ -2095,6 +2096,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2089,6 +2090,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.getPassengers().size() < 1; } @@ -66,7 +66,7 @@ index 506851111..1cb96685a 100644 return 0.0F; } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index a9d7eea36..dacaa16e0 100644 +index 3e819f540..20e8ae96d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -3217,6 +3217,37 @@ public abstract class EntityLiving extends Entity { diff --git a/Spigot-Server-Patches/0373-Entity-getEntitySpawnReason.patch b/Spigot-Server-Patches/0373-Entity-getEntitySpawnReason.patch index beb78249af..8017c7aadd 100644 --- a/Spigot-Server-Patches/0373-Entity-getEntitySpawnReason.patch +++ b/Spigot-Server-Patches/0373-Entity-getEntitySpawnReason.patch @@ -1,4 +1,4 @@ -From faab98f0277620b2a58857119f013b3b06e6a313 Mon Sep 17 00:00:00 2001 +From 27c174a8be5a9a526e6809af5e8d64fec60c8417 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 24 Mar 2019 00:24:52 -0400 Subject: [PATCH] Entity#getEntitySpawnReason @@ -10,7 +10,7 @@ persistenting Living Entity, SPAWNER for spawners, or DEFAULT since data was not stored. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 1cb96685a..23f910187 100644 +index 0adf4b69a..b4bd05220 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -68,6 +68,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -21,7 +21,7 @@ index 1cb96685a..23f910187 100644 // Paper end static boolean isLevelAtLeast(NBTTagCompound tag, int level) { return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; -@@ -1594,6 +1595,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1588,6 +1589,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (this.origin != null) { nbttagcompound.set("Paper.Origin", this.createList(origin.getX(), origin.getY(), origin.getZ())); } @@ -31,7 +31,7 @@ index 1cb96685a..23f910187 100644 // Save entity's from mob spawner status if (spawnedViaMobSpawner) { nbttagcompound.setBoolean("Paper.FromMobSpawner", true); -@@ -1727,6 +1731,26 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1721,6 +1725,26 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } spawnedViaMobSpawner = nbttagcompound.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status @@ -72,7 +72,7 @@ index 51272a51b..4bc465ef4 100644 }); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a1f5f7b07..bfc3432a8 100644 +index 72b8561ac..03da9b3f2 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -939,6 +939,7 @@ public class WorldServer extends World {