diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index bdd402a61..c29ad73a5 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Timings v2 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java new file mode 100644 -index 0000000000000000000000000000000000000000..a58ef60d9976b3afc50e94364cf474bd2e5fdfd6 +index 0000000000000000000000000000000000000000..11fe3524f38f7756ebd0e3807678e8848fd2217d --- /dev/null +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java -@@ -0,0 +1,149 @@ +@@ -0,0 +1,148 @@ +package co.aikar.timings; + +import com.google.common.collect.MapMaker; @@ -118,9 +118,8 @@ index 0000000000000000000000000000000000000000..a58ef60d9976b3afc50e94364cf474bd + * @param entity + * @return + */ -+ public static Timing getEntityTimings(Entity entity) { -+ String entityType = entity.getClass().getName(); -+ return Timings.ofSafe("Minecraft", "## tickEntity - " + entityType, tickEntityTimer); ++ public static Timing getEntityTimings(String entityType, String type) { ++ return Timings.ofSafe("Minecraft", "## tickEntity - " + entityType + " - " + type, tickEntityTimer); + } + + /** @@ -1003,29 +1002,26 @@ index 7f3c6518cce96354cc2217e5e112ac426199ae9b..4ef6913c356663b640e6ce770c123f51 } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index fc6930327625bf951bb0ba21df5eb1a559a2b295..afaf32db9c53d164f13f5afcd4202b40c9866e05 100644 +index fc6930327625bf951bb0ba21df5eb1a559a2b295..7fe3c37feef31762014f0c77e1bbb3c3a12a0797 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -31,7 +31,8 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent; +@@ -31,7 +31,6 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent; import org.bukkit.entity.Hanging; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Vehicle; -import org.spigotmc.CustomTimingsHandler; // Spigot -+import co.aikar.timings.MinecraftTimings; // Paper -+import co.aikar.timings.Timing; // Paper import org.bukkit.event.entity.EntityCombustByEntityEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -@@ -162,7 +163,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -162,7 +161,6 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public boolean valid; public org.bukkit.projectiles.ProjectileSource projectileSource; // For projectiles only public boolean forceExplosionKnockback; // SPIGOT-949 - public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getEntityTimings(this); // Spigot -+ public Timing tickTimer = MinecraftTimings.getEntityTimings(this); // Paper // Spigot start public final org.spigotmc.ActivationRange.ActivationType activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); public final boolean defaultActivationState; -@@ -531,7 +532,6 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -531,7 +529,6 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public void move(EnumMoveType enummovetype, Vec3D vec3d) { @@ -1033,7 +1029,7 @@ index fc6930327625bf951bb0ba21df5eb1a559a2b295..afaf32db9c53d164f13f5afcd4202b40 if (this.noclip) { this.a(this.getBoundingBox().c(vec3d)); this.recalcPosition(); -@@ -667,7 +667,6 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -667,7 +664,6 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.world.getMethodProfiler().exit(); } @@ -1119,6 +1115,58 @@ index 3ee9be26bbfbf1fa2c4133da3e95c8ac3f533fa4..6f9fe8959e7ca47effead4ab2a59c75d this.world.getMethodProfiler().exit(); if (!this.world.isClientSide && this.dN() && this.aF()) { this.damageEntity(DamageSource.DROWN, 1.0F); +diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java +index ffb8685e7c457483bcf4b2ed1065fec0fbaa69e2..add85654783e9c3cebf2a2072cd2e07679de1bae 100644 +--- a/src/main/java/net/minecraft/server/EntityTypes.java ++++ b/src/main/java/net/minecraft/server/EntityTypes.java +@@ -151,7 +151,9 @@ public class EntityTypes { + return IRegistry.ENTITY_TYPE.getOptional(MinecraftKey.a(s)); + } + +- public EntityTypes(EntityTypes.b entitytypes_b, EnumCreatureType enumcreaturetype, boolean flag, boolean flag1, boolean flag2, boolean flag3, ImmutableSet immutableset, EntitySize entitysize, int i, int j) { ++ public final String id; ++ public EntityTypes(EntityTypes.b entitytypes_b, EnumCreatureType enumcreaturetype, boolean flag, boolean flag1, boolean flag2, boolean flag3, ImmutableSet immutableset, EntitySize entitysize, int i, int j) { this(entitytypes_b, enumcreaturetype, flag, flag1, flag2, flag3, immutableset, entitysize, i, j, "custom"); } // Paper - old signature ++ public EntityTypes(EntityTypes.b entitytypes_b, EnumCreatureType enumcreaturetype, boolean flag, boolean flag1, boolean flag2, boolean flag3, ImmutableSet immutableset, EntitySize entitysize, int i, int j, String id) { // Paper - add id + this.bf = entitytypes_b; + this.bg = enumcreaturetype; + this.bl = flag3; +@@ -162,6 +164,14 @@ public class EntityTypes { + this.br = entitysize; + this.bm = i; + this.bn = j; ++ ++ // Paper start - timings ++ this.id = id; ++ this.tickTimer = co.aikar.timings.MinecraftTimings.getEntityTimings(id, "tick"); ++ this.inactiveTickTimer = co.aikar.timings.MinecraftTimings.getEntityTimings(id, "inactiveTick"); ++ this.passengerTickTimer = co.aikar.timings.MinecraftTimings.getEntityTimings(id, "passengerTick"); ++ this.passengerInactiveTickTimer = co.aikar.timings.MinecraftTimings.getEntityTimings(id, "passengerInactiveTick"); ++ // Paper end + } + + @Nullable +@@ -381,6 +391,12 @@ public class EntityTypes { + return this.bn; + } + ++ // Paper start - timings ++ public final co.aikar.timings.Timing tickTimer; ++ public final co.aikar.timings.Timing inactiveTickTimer; ++ public final co.aikar.timings.Timing passengerTickTimer; ++ public final co.aikar.timings.Timing passengerInactiveTickTimer; ++ // Paper end + public boolean isDeltaTracking() { + return this != EntityTypes.PLAYER && this != EntityTypes.LLAMA_SPIT && this != EntityTypes.WITHER && this != EntityTypes.BAT && this != EntityTypes.ITEM_FRAME && this != EntityTypes.LEASH_KNOT && this != EntityTypes.PAINTING && this != EntityTypes.END_CRYSTAL && this != EntityTypes.EVOKER_FANGS; + } +@@ -468,7 +484,7 @@ public class EntityTypes { + SystemUtils.a(DataConverterTypes.ENTITY_TREE, s); + } + +- return new EntityTypes<>(this.a, this.b, this.d, this.e, this.f, this.g, this.c, this.j, this.h, this.i); ++ return new EntityTypes<>(this.a, this.b, this.d, this.e, this.f, this.g, this.c, this.j, this.h, this.i, s); // Paper - add id + } + } + diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 3976bf9a94657a5842a5ced06f3d12e108667dfc..bc7f74bae272d7cef681136ebdafed3d1a3df046 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1630,7 +1678,7 @@ index 557a265712695180c4cb1cf49c4e0a5441554e86..86e7134a402d1c1e0df954c6ea862c62 CrashReport crashreport = CrashReport.a(throwable, "Ticking entity"); CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being ticked"); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 56ba84a0fcd3e6a6e2dbd035f466112bf17c6845..b281f49cd95dc9af612ee8e580f62c739920640f 100644 +index 56ba84a0fcd3e6a6e2dbd035f466112bf17c6845..3c917e814c05c1a6284d6a0d00ae31aed5d37ff0 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -2,6 +2,8 @@ package net.minecraft.server; @@ -1704,35 +1752,40 @@ index 56ba84a0fcd3e6a6e2dbd035f466112bf17c6845..b281f49cd95dc9af612ee8e580f62c73 gameprofilerfiller.exit(); } -@@ -638,6 +644,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -638,14 +644,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) { this.chunkCheck(entity); } else { + ++TimingHistory.entityTicks; // Paper - timings // Spigot start ++ co.aikar.timings.Timing timer; // Paper if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { entity.ticksLived++; -@@ -645,7 +652,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { ++ timer = entity.getEntityType().inactiveTickTimer.startTiming(); try { // Paper - timings + entity.inactiveTick(); ++ } finally { timer.stopTiming(); } // Paper return; } // Spigot end -+ TimingHistory.activatedEntityTicks++; // Paper - timings - entity.tickTimer.startTiming(); // Spigot -+ try { // Paper - timings +- entity.tickTimer.startTiming(); // Spigot ++ // Paper start- timings ++ TimingHistory.activatedEntityTicks++; ++ timer = entity.getVehicle() != null ? entity.getEntityType().passengerTickTimer.startTiming() : entity.getEntityType().tickTimer.startTiming(); ++ try { ++ // Paper end - timings entity.g(entity.locX(), entity.locY(), entity.locZ()); entity.lastYaw = entity.yaw; entity.lastPitch = entity.pitch; -@@ -672,7 +681,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -672,7 +686,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.a(entity, entity1); } } -+ } finally { // Paper - timings - entity.tickTimer.stopTiming(); // Spigot -+ } // Paper - timings +- entity.tickTimer.stopTiming(); // Spigot ++ } finally { timer.stopTiming(); } // Paper - timings } } -@@ -749,6 +760,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -749,6 +763,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (!flag1) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -1740,7 +1793,7 @@ index 56ba84a0fcd3e6a6e2dbd035f466112bf17c6845..b281f49cd95dc9af612ee8e580f62c73 if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel")); } -@@ -758,7 +770,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -758,7 +773,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { iprogressupdate.c(new ChatMessage("menu.savingChunks")); } diff --git a/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump-and-take-water-damage.patch b/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump-and-take-water-damage.patch index 065ee4ba5..429fe10d7 100644 --- a/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump-and-take-water-damage.patch +++ b/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump-and-take-water-damage.patch @@ -31,10 +31,10 @@ index 2e869004c8c6b8bfbb002fb4eda04519d50390c8..22eb89df768819f0a18f91b806b56ace this.b.setJumping(this.a); this.a = false; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 8dbf7b62d64ca7472956ad198554a98d46bac589..32e10105fa68b6f647d6c3173ae6e6db03209b78 100644 +index 7fe3c37feef31762014f0c77e1bbb3c3a12a0797..b0dc450870483c0c97784a52c7d32d56e0a10fc4 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1022,6 +1022,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1019,6 +1019,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.isInWater() || this.isInRain(); } @@ -43,7 +43,7 @@ index 8dbf7b62d64ca7472956ad198554a98d46bac589..32e10105fa68b6f647d6c3173ae6e6db return this.isInWater() || this.isInRain() || this.k(); } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index c19b17bbf1a816f65cfbfcbdf57c7cb2350cb841..d09faa237905a6d4ad39ece64f6db5079be655e1 100644 +index 5da6528672d0f14766ca99ce5d2cc40b5035896c..f56701240ab819d31bb631684a4ee49a9a28a19b 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -33,6 +33,7 @@ public abstract class EntityInsentient extends EntityLiving { diff --git a/Spigot-Server-Patches/0016-Drop-falling-block-and-tnt-entities-at-the-specified.patch b/Spigot-Server-Patches/0016-Drop-falling-block-and-tnt-entities-at-the-specified.patch index 658256e50..b709c47a0 100644 --- a/Spigot-Server-Patches/0016-Drop-falling-block-and-tnt-entities-at-the-specified.patch +++ b/Spigot-Server-Patches/0016-Drop-falling-block-and-tnt-entities-at-the-specified.patch @@ -24,10 +24,10 @@ index 8ee2b9bb1bce698fce50ac1b3fc477fcafd0542c..d59b82b7bb1f6d1b231f4e394e0a67a3 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 66f61f7a9d3770ad1d63aca3a655c8c458845b52..18d60e66b9ebd42ca02142c1d44751881f29fc5d 100644 +index b0dc450870483c0c97784a52c7d32d56e0a10fc4..f76476fba765c04a19931a36d88d9cebcba93334 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1759,6 +1759,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1756,6 +1756,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.a(itemstack, 0.0F); } diff --git a/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch index 78e3ceb97..60604bcf6 100644 --- a/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch +++ b/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player affects spawning API diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f38931dec12c09e3822b320855f749158fd784f4..6b4f38c6528a0a730f31eff3204d741e9b4a2ae2 100644 +index f76476fba765c04a19931a36d88d9cebcba93334..9bfbbacdf19801aee1f1e566006059181401f676 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1271,6 +1271,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1268,6 +1268,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return MathHelper.c(f * f + f1 * f1 + f2 * f2); } @@ -31,7 +31,7 @@ index e16be546b22c09e1c6ed50c453e1f2c711832a81..683d98dea1b46931478ac7b55e49bc9d // CraftBukkit start public boolean fauxSleeping; diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 0f28d047453b99a6dc051196642cedc86b3d657b..69acb0f17577cb46a0302f1d6bbb3a42924aeda9 100644 +index 30530057e2e25288abfdb138be4abe242d418612..ce6a6f91b27111535029c86ec1280d458427ea66 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -691,7 +691,7 @@ public abstract class EntityInsentient extends EntityLiving { diff --git a/Spigot-Server-Patches/0025-Entity-Origin-API.patch b/Spigot-Server-Patches/0025-Entity-Origin-API.patch index 064c0bef2..f4c255398 100644 --- a/Spigot-Server-Patches/0025-Entity-Origin-API.patch +++ b/Spigot-Server-Patches/0025-Entity-Origin-API.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Entity Origin API diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index da1586b21ee12a28b66410fde09395bc044c26d0..d21106a96356032f1e183c75f020dc61d18d79fd 100644 +index 9bfbbacdf19801aee1f1e566006059181401f676..9f0ae86bbd26c151b371b399db92f527fc4b51d6 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -164,6 +164,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -161,6 +161,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + public boolean valid; public org.bukkit.projectiles.ProjectileSource projectileSource; // For projectiles only public boolean forceExplosionKnockback; // SPIGOT-949 - public Timing tickTimer = MinecraftTimings.getEntityTimings(this); // Paper + public org.bukkit.Location origin; // Paper // Spigot start public final org.spigotmc.ActivationRange.ActivationType activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); public final boolean defaultActivationState; -@@ -1539,6 +1540,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1536,6 +1537,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.bukkitEntity.storeBukkitValues(nbttagcompound); } // CraftBukkit end @@ -28,7 +28,7 @@ index da1586b21ee12a28b66410fde09395bc044c26d0..d21106a96356032f1e183c75f020dc61 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.a(throwable, "Saving entity NBT"); -@@ -1656,6 +1662,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1653,6 +1659,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.getBukkitEntity().readBukkitValues(nbttagcompound); // CraftBukkit end @@ -42,7 +42,7 @@ index da1586b21ee12a28b66410fde09395bc044c26d0..d21106a96356032f1e183c75f020dc61 } catch (Throwable throwable) { CrashReport crashreport = CrashReport.a(throwable, "Loading entity NBT"); CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being loaded"); -@@ -1717,6 +1730,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1714,6 +1727,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke protected abstract void saveData(NBTTagCompound nbttagcompound); @@ -101,10 +101,10 @@ index ad8a506bb430b26fe147a657a2f826daf9bf4d45..ad4807e0bdd6409bd798f995da8f43ce if (i >= 0 && i < this.list.size()) { NBTBase nbtbase = (NBTBase) this.list.get(i); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index b281f49cd95dc9af612ee8e580f62c739920640f..73faa25ff7642aab6eaee4af1a4f036cde3b691b 100644 +index 3c917e814c05c1a6284d6a0d00ae31aed5d37ff0..dea829c3a568c0f78e8c4413c92f6fcc05297d8b 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1126,6 +1126,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1129,6 +1129,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.navigators.add(((EntityInsentient) entity).getNavigation()); } entity.valid = true; // CraftBukkit diff --git a/Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch b/Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch index f44b0ad80..67050437e 100644 --- a/Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch +++ b/Spigot-Server-Patches/0027-Configurable-top-of-nether-void-damage.patch @@ -29,10 +29,10 @@ index d59b82b7bb1f6d1b231f4e394e0a67a3d154d7be..f7a0a33e49cadf9b2bd43f118c106937 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7cfd035d2baa4318c306cd850ea49468ac213792..acb246076e5b127703c8080a8c5000c8cb05e4ec 100644 +index 9f0ae86bbd26c151b371b399db92f527fc4b51d6..ad372904a42978be83a8588dd24c22d15a7bf5b6 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -417,9 +417,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -414,9 +414,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.fallDistance *= 0.5F; } @@ -49,7 +49,7 @@ index 7cfd035d2baa4318c306cd850ea49468ac213792..acb246076e5b127703c8080a8c5000c8 if (!this.world.isClientSide) { this.setFlag(0, this.fireTicks > 0); -@@ -512,6 +519,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -509,6 +516,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.setFireTicks(0); } diff --git a/Spigot-Server-Patches/0051-Add-configurable-portal-search-radius.patch b/Spigot-Server-Patches/0051-Add-configurable-portal-search-radius.patch index b8100fe87..489b4c6f0 100644 --- a/Spigot-Server-Patches/0051-Add-configurable-portal-search-radius.patch +++ b/Spigot-Server-Patches/0051-Add-configurable-portal-search-radius.patch @@ -21,10 +21,10 @@ index 62e793b71b313146b86b466421e7a5f894bef9df..cd47a4ca069df26969de3051c2aac805 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 02b3c1f34f29877d67f4017caa477a332aac8242..c222539ac9f0a2b9f7e4a6ded873db4ca2b2e7b6 100644 +index ad372904a42978be83a8588dd24c22d15a7bf5b6..fc5cbf8cd9fa82e217084b50bd3db9458c9defbf 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2517,7 +2517,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2514,7 +2514,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke double d4 = DimensionManager.a(this.world.getDimensionManager(), worldserver.getDimensionManager()); BlockPosition blockposition = new BlockPosition(MathHelper.a(this.locX() * d4, d0, d2), this.locY(), MathHelper.a(this.locZ() * d4, d1, d3)); // CraftBukkit start @@ -34,7 +34,7 @@ index 02b3c1f34f29877d67f4017caa477a332aac8242..c222539ac9f0a2b9f7e4a6ded873db4c return null; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 91496373c4dfb97adc2255e59ef413c7c78d009c..0751dd4babcb69d05ddf05c006f01d42597a1564 100644 +index 9142f6294f3b6ca2488c146ffa568a2858d7650f..0355b18f1ba079fb0281a2deda80ef2e5c725c47 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -872,7 +872,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/Spigot-Server-Patches/0056-Disable-Scoreboards-for-non-players-by-default.patch b/Spigot-Server-Patches/0056-Disable-Scoreboards-for-non-players-by-default.patch index b3d806ffb..c9837b392 100644 --- a/Spigot-Server-Patches/0056-Disable-Scoreboards-for-non-players-by-default.patch +++ b/Spigot-Server-Patches/0056-Disable-Scoreboards-for-non-players-by-default.patch @@ -25,10 +25,10 @@ index abbf59bb91021821876a8960e8f77fac24457ec4..04430aae52205ee167662004e45c145b + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c222539ac9f0a2b9f7e4a6ded873db4ca2b2e7b6..9295f5aa306d062bf95cd10e13796315a1fc8c1d 100644 +index fc5cbf8cd9fa82e217084b50bd3db9458c9defbf..fd881f2e262f5514392a484cf3e442173acb9be1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2192,6 +2192,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2189,6 +2189,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @Nullable public ScoreboardTeamBase getScoreboardTeam() { diff --git a/Spigot-Server-Patches/0069-Use-a-Shared-Random-for-Entities.patch b/Spigot-Server-Patches/0069-Use-a-Shared-Random-for-Entities.patch index 4c08daf3d..9596f8bc6 100644 --- a/Spigot-Server-Patches/0069-Use-a-Shared-Random-for-Entities.patch +++ b/Spigot-Server-Patches/0069-Use-a-Shared-Random-for-Entities.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use a Shared Random for Entities Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 263564408d05a231e1857c23d2c15882c4364dd5..2a928e016b45ac8aafb97bbebebcf4c00000a9e8 100644 +index fd881f2e262f5514392a484cf3e442173acb9be1..f74eaf5cfd0add930d71d89e9a5441f4115e5f6c 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -60,6 +60,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -58,6 +58,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } @@ -31,7 +31,7 @@ index 263564408d05a231e1857c23d2c15882c4364dd5..2a928e016b45ac8aafb97bbebebcf4c0 private CraftEntity bukkitEntity; public CraftEntity getBukkitEntity() { -@@ -189,7 +204,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -186,7 +201,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.x = Vec3D.a; this.am = 1.0F; this.an = 1.0F; diff --git a/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch b/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch index 0ab40b292..a61baa97d 100644 --- a/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 7d1cfda9ea4944ff772003b8ecbbbd7554c79da1..f07f70fcfe1b8531910561e92f47f47ec398f0ba 100644 +index 3c6765cc27950a3f9b97cba86c998ceede2e3725..a8c3530bc51784865f0119d1c01393de4eb6325e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1094,7 +1094,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1097,7 +1097,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity instanceof EntityInsentient) { this.navigators.remove(((EntityInsentient) entity).getNavigation()); } @@ -17,7 +17,7 @@ index 7d1cfda9ea4944ff772003b8ecbbbd7554c79da1..f07f70fcfe1b8531910561e92f47f47e entity.valid = false; // CraftBukkit } -@@ -1132,6 +1132,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1135,6 +1135,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { entity.origin = entity.getBukkitEntity().getLocation(); } // Paper end diff --git a/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch index 07b73818a..0e18aa045 100644 --- a/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Remove unused World Tile Entity List Massive hit to performance and it is completely unnecessary. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 04887987f33b10a91ab0580b69ff1ad1db376593..03aa2d9c2d0ef96d2a97a9aae18cc04fa04b9665 100644 +index e6b62da5fc798db29aa1b31d00e5df2027637d0b..5b24446fbd242d31a3fe17c1c2f5611a5e15f509 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -39,7 +39,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -67,10 +67,10 @@ index 04887987f33b10a91ab0580b69ff1ad1db376593..03aa2d9c2d0ef96d2a97a9aae18cc04f } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index f07f70fcfe1b8531910561e92f47f47ec398f0ba..e1484ee03f1f1c59f849f72cc563cab88acf8930 100644 +index a8c3530bc51784865f0119d1c01393de4eb6325e..611b48d3d473e9c8738bd4545c9243658c03481e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1591,7 +1591,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1594,7 +1594,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } bufferedwriter.write(String.format("entities: %d\n", this.entitiesById.size())); @@ -79,7 +79,7 @@ index f07f70fcfe1b8531910561e92f47f47ec398f0ba..e1484ee03f1f1c59f849f72cc563cab8 bufferedwriter.write(String.format("block_ticks: %d\n", this.getBlockTickList().a())); bufferedwriter.write(String.format("fluid_ticks: %d\n", this.getFluidTickList().a())); bufferedwriter.write("distance_manager: " + playerchunkmap.e().c() + "\n"); -@@ -1730,7 +1730,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1733,7 +1733,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { private void a(Writer writer) throws IOException { CSVWriter csvwriter = CSVWriter.a().a("x").a("y").a("z").a("type").a(writer); diff --git a/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index d716c7280..b41e4943e 100644 --- a/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -102,10 +102,10 @@ index e6d97e7ffae3eadac586bad078123cd4aaa69916..225353e072033d1e5aaf5604b8db255d for ( org.bukkit.map.MapCursor cursor : render.cursors) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index e1484ee03f1f1c59f849f72cc563cab88acf8930..c8d553007cacdeb734c88983151d433ccfe3d36b 100644 +index 611b48d3d473e9c8738bd4545c9243658c03481e..be5e3eb71f9aa1db63e7fa3e5fb750cc066662d8 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1050,6 +1050,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1053,6 +1053,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { { if ( iter.next().trackee == entity ) { diff --git a/Spigot-Server-Patches/0096-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0096-LootTable-API-Replenishable-Lootables-Feature.patch index 349266723..bc5d4b734 100644 --- a/Spigot-Server-Patches/0096-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/Spigot-Server-Patches/0096-LootTable-API-Replenishable-Lootables-Feature.patch @@ -518,10 +518,10 @@ index 0000000000000000000000000000000000000000..a1923aff2b5e2e867670a5a064a76791 + } +} diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 2a928e016b45ac8aafb97bbebebcf4c00000a9e8..ef96a77ed1164ce331b65e5ed8c6bbf4350f885e 100644 +index f74eaf5cfd0add930d71d89e9a5441f4115e5f6c..10d7216f3a062269d39b66b33ff65db7c4179068 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -75,6 +75,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -73,6 +73,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke }; // Paper end diff --git a/Spigot-Server-Patches/0101-Optional-TNT-doesn-t-move-in-water.patch b/Spigot-Server-Patches/0101-Optional-TNT-doesn-t-move-in-water.patch index 46e00e15e..731b6389a 100644 --- a/Spigot-Server-Patches/0101-Optional-TNT-doesn-t-move-in-water.patch +++ b/Spigot-Server-Patches/0101-Optional-TNT-doesn-t-move-in-water.patch @@ -32,10 +32,10 @@ index 05ea87a473228f5b386258fae3943f3f4561eaa6..ac76bdd7e1d91b0d242539c4495948cd + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c51a80f4cbbbe355e332581559b357dc6abe66bf..3b3b443cd25ef5c327f54c5e784e03bd81c73a7a 100644 +index 10d7216f3a062269d39b66b33ff65db7c4179068..8198f7cc10132bb459fed759205cf4cbc31f4659 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2664,6 +2664,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2661,6 +2661,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean bU() { diff --git a/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch index dae24db6f..5aa2434ad 100644 --- a/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch +++ b/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch @@ -8,10 +8,10 @@ Vanilla will double add Spider Jockeys to the world, so ignore already added. Also add debug if something else tries to, and abort before world gets bad state diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index c8d553007cacdeb734c88983151d433ccfe3d36b..81a7278915eef762e1ddb296be4a73ac6450d44e 100644 +index be5e3eb71f9aa1db63e7fa3e5fb750cc066662d8..aab9d9000285feeb5d5b6dbe1d296779ec5b67f2 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -919,6 +919,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -922,6 +922,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch index 48b40e0bf..7c52b20a2 100644 --- a/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch @@ -8,10 +8,10 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr Keep them consistent diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 81a7278915eef762e1ddb296be4a73ac6450d44e..173388ca55bd15ba88f730ec9108f738740d64c5 100644 +index aab9d9000285feeb5d5b6dbe1d296779ec5b67f2..6c78a7101dcef4eb967aa5d2e3c93b6e1e30a681 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -728,7 +728,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -731,7 +731,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity.ck()) { this.getMethodProfiler().enter("chunkCheck"); int i = MathHelper.floor(entity.locX() / 16.0D); diff --git a/Spigot-Server-Patches/0136-Don-t-allow-entities-to-ride-themselves-572.patch b/Spigot-Server-Patches/0136-Don-t-allow-entities-to-ride-themselves-572.patch index 16783a486..4c96ecd66 100644 --- a/Spigot-Server-Patches/0136-Don-t-allow-entities-to-ride-themselves-572.patch +++ b/Spigot-Server-Patches/0136-Don-t-allow-entities-to-ride-themselves-572.patch @@ -5,10 +5,10 @@ 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 3b3b443cd25ef5c327f54c5e784e03bd81c73a7a..55b4c8abeb0033b15a255ec36e1998678d836dd2 100644 +index 8198f7cc10132bb459fed759205cf4cbc31f4659..24997b1505db537bb19cb8fd966f7049dc9a0832 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1949,6 +1949,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1946,6 +1946,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } protected boolean addPassenger(Entity entity) { // CraftBukkit diff --git a/Spigot-Server-Patches/0138-Cap-Entity-Collisions.patch b/Spigot-Server-Patches/0138-Cap-Entity-Collisions.patch index 137677b8b..7565c83d5 100644 --- a/Spigot-Server-Patches/0138-Cap-Entity-Collisions.patch +++ b/Spigot-Server-Patches/0138-Cap-Entity-Collisions.patch @@ -27,10 +27,10 @@ index 255b4081314162cbe344b008158c6f4584795fb8..04ee0856a8c62e1afb438d4fddf40e60 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 55b4c8abeb0033b15a255ec36e1998678d836dd2..a734de8641a61e6764ca68c194e1bd68142db55e 100644 +index 24997b1505db537bb19cb8fd966f7049dc9a0832..8c60057b94910532a6fbe72af24b2bd2175a37ed 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -185,6 +185,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -182,6 +182,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public final org.spigotmc.ActivationRange.ActivationType activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); public final boolean defaultActivationState; public long activatedTick = Integer.MIN_VALUE; diff --git a/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch b/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch index b109ae5fe..925d95180 100644 --- a/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch +++ b/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch @@ -5,10 +5,10 @@ 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 a734de8641a61e6764ca68c194e1bd68142db55e..a3bc9636e7c76751eca496a99e62e3c747908374 100644 +index 8c60057b94910532a6fbe72af24b2bd2175a37ed..5bf33cf31e5ef6313484b1d9f01f3879f608ab11 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -185,6 +185,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -182,6 +182,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public final org.spigotmc.ActivationRange.ActivationType activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this); public final boolean defaultActivationState; public long activatedTick = Integer.MIN_VALUE; @@ -16,7 +16,7 @@ index a734de8641a61e6764ca68c194e1bd68142db55e..a3bc9636e7c76751eca496a99e62e3c7 protected int numCollisions = 0; // Paper public void inactiveTick() { } // Spigot end -@@ -1578,6 +1579,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1575,6 +1576,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 a734de8641a61e6764ca68c194e1bd68142db55e..a3bc9636e7c76751eca496a99e62e3c7 // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -1701,6 +1706,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1698,6 +1703,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (!originTag.isEmpty()) { origin = new org.bukkit.Location(world.getWorld(), originTag.getDoubleAt(0), originTag.getDoubleAt(1), originTag.getDoubleAt(2)); } diff --git a/Spigot-Server-Patches/0215-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0215-Expand-World.spawnParticle-API-and-add-Builder.patch index 307617131..397a7755a 100644 --- a/Spigot-Server-Patches/0215-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-Server-Patches/0215-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 173388ca55bd15ba88f730ec9108f738740d64c5..f841621a7fe1a2364f821ceb661972d6b03b3b9a 100644 +index 6c78a7101dcef4eb967aa5d2e3c93b6e1e30a681..b62f908886478d09fb5831492d94a6427808ccf7 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -57,7 +57,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -22,7 +22,7 @@ index 173388ca55bd15ba88f730ec9108f738740d64c5..f841621a7fe1a2364f821ceb661972d6 public final ChunkProviderServer chunkProvider; // Paper - public boolean tickingEntities; private final MinecraftServer server; -@@ -1348,12 +1348,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1351,12 +1351,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { } public int sendParticles(EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { diff --git a/Spigot-Server-Patches/0236-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0236-InventoryCloseEvent-Reason-API.patch index 88471c3c4..f895a6cca 100644 --- a/Spigot-Server-Patches/0236-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0236-InventoryCloseEvent-Reason-API.patch @@ -130,10 +130,10 @@ index ea7527b16571cef5c285e898f5a9fd0c063948fa..df8a92b082139c84afc32cf02541faa8 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game"); cserver.getPluginManager().callEvent(playerQuitEvent); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index f841621a7fe1a2364f821ceb661972d6b03b3b9a..d1699502eac193f25d2fc369526596a0b62574a3 100644 +index b62f908886478d09fb5831492d94a6427808ccf7..afefa310800972f2b5f36e6364b9126a13cca5c6 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1005,7 +1005,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1008,7 +1008,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { for (TileEntity tileentity : chunk.getTileEntities().values()) { if (tileentity instanceof IInventory) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((IInventory) tileentity).getViewers())) { @@ -142,7 +142,7 @@ index f841621a7fe1a2364f821ceb661972d6b03b3b9a..d1699502eac193f25d2fc369526596a0 } } } -@@ -1063,7 +1063,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1066,7 +1066,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { diff --git a/Spigot-Server-Patches/0240-Re-add-vanilla-entity-warnings-for-duplicates.patch b/Spigot-Server-Patches/0240-Re-add-vanilla-entity-warnings-for-duplicates.patch index 7474f45c2..81906906f 100644 --- a/Spigot-Server-Patches/0240-Re-add-vanilla-entity-warnings-for-duplicates.patch +++ b/Spigot-Server-Patches/0240-Re-add-vanilla-entity-warnings-for-duplicates.patch @@ -8,10 +8,10 @@ These are a critical sign that somethin went wrong, and you've lost some data... We should kind of know about these things you know. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index d1699502eac193f25d2fc369526596a0b62574a3..5e6a39ded0405d8ab8ba26d2a9f152cda0fa94fb 100644 +index afefa310800972f2b5f36e6364b9126a13cca5c6..694962faed48b0d333ff95312a03f3a4189c0526 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -958,7 +958,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -961,7 +961,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity1 == null) { return false; } else { diff --git a/Spigot-Server-Patches/0243-add-more-information-to-Entity.toString.patch b/Spigot-Server-Patches/0243-add-more-information-to-Entity.toString.patch index 31b107a4b..158de9150 100644 --- a/Spigot-Server-Patches/0243-add-more-information-to-Entity.toString.patch +++ b/Spigot-Server-Patches/0243-add-more-information-to-Entity.toString.patch @@ -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 a3bc9636e7c76751eca496a99e62e3c747908374..f5c285909af563b91bb81638a3bcdf9f25584913 100644 +index 5bf33cf31e5ef6313484b1d9f01f3879f608ab11..fe39746a0cde32c27f051896b1472b1fc1a200a9 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2426,7 +2426,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2423,7 +2423,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public String toString() { diff --git a/Spigot-Server-Patches/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 7c376c3d8..5a7470749 100644 --- a/Spigot-Server-Patches/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/Spigot-Server-Patches/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues Add -Ddebug.entities=true to your JVM flags to gain more information diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f5c285909af563b91bb81638a3bcdf9f25584913..38a0a9313e46ce1f53fa48e99ad501b65deb1342 100644 +index fe39746a0cde32c27f051896b1472b1fc1a200a9..e73a4c8dc3e15bc9897b7df86a87cd62f6908073 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -78,6 +78,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -76,6 +76,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; @@ -52,7 +52,7 @@ index aefdcbeb1a452871a5a7376b4c259b3284f10d75..ae389806f62960816e6a8d0ab1bd8351 public boolean captureBlockStates = false; public boolean captureTreeGeneration = false; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 5e6a39ded0405d8ab8ba26d2a9f152cda0fa94fb..bd0e35fac15ca559d6508df8c7f593af036ab551 100644 +index 694962faed48b0d333ff95312a03f3a4189c0526..1645d07da9323fa67829823cfdfbc08b60a59b27 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -84,6 +84,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -65,7 +65,7 @@ index 5e6a39ded0405d8ab8ba26d2a9f152cda0fa94fb..bd0e35fac15ca559d6508df8c7f593af @Override public Chunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkProvider.getChunkAt(x, z, false); -@@ -919,8 +922,28 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -922,8 +925,28 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot @@ -95,7 +95,7 @@ index 5e6a39ded0405d8ab8ba26d2a9f152cda0fa94fb..bd0e35fac15ca559d6508df8c7f593af // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getName(entity.getEntityType())); // CraftBukkit return false; } else if (this.isUUIDTaken(entity)) { -@@ -1117,7 +1140,24 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1120,7 +1143,24 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } diff --git a/Spigot-Server-Patches/0250-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0250-Vanished-players-don-t-have-rights.patch index 797164fd1..c92bf0c74 100644 --- a/Spigot-Server-Patches/0250-Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/0250-Vanished-players-don-t-have-rights.patch @@ -17,10 +17,10 @@ index e7052aba9d63a296873044623808e003b3b453b7..916fb9b063f061d64da1c2ade1863a84 return this.getBlock().c(this.p(), iblockaccess, blockposition, voxelshapecollision); } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 38a0a9313e46ce1f53fa48e99ad501b65deb1342..003f2a3bca8db71d25101b555ada81544e319425 100644 +index e73a4c8dc3e15bc9897b7df86a87cd62f6908073..06ff22f053652c7ba5b135ccb3080c12640cb9b6 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -100,7 +100,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -98,7 +98,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke private static double e = 1.0D; private final EntityTypes f; private int id; diff --git a/Spigot-Server-Patches/0252-Add-some-Debug-to-Chunk-Entity-slices.patch b/Spigot-Server-Patches/0252-Add-some-Debug-to-Chunk-Entity-slices.patch index 8b50078dc..26bba9491 100644 --- a/Spigot-Server-Patches/0252-Add-some-Debug-to-Chunk-Entity-slices.patch +++ b/Spigot-Server-Patches/0252-Add-some-Debug-to-Chunk-Entity-slices.patch @@ -58,10 +58,10 @@ index bc249e399befa84cdf07cc58cd0072bb9cb5cced..3b3cae92513a85ba842d403c68f5a1fb return; } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 003f2a3bca8db71d25101b555ada81544e319425..174329b9adbfa9de61f76ee92c85f6c77d65d3dc 100644 +index 06ff22f053652c7ba5b135ccb3080c12640cb9b6..81bbe63090f233ae45d4b4d614b6c84d4101b173 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -73,6 +73,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -71,6 +71,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } } }; diff --git a/Spigot-Server-Patches/0254-Prevent-Saving-Bad-entities-to-chunks.patch b/Spigot-Server-Patches/0254-Prevent-Saving-Bad-entities-to-chunks.patch index 49a729621..c8ceaf66d 100644 --- a/Spigot-Server-Patches/0254-Prevent-Saving-Bad-entities-to-chunks.patch +++ b/Spigot-Server-Patches/0254-Prevent-Saving-Bad-entities-to-chunks.patch @@ -80,10 +80,10 @@ index f30071fe5c1f33386829cc61d8c6976a39eff24f..1e28061dd83a4bf2daab38aee84ddba3 public static ChunkStatus.Type a(@Nullable NBTTagCompound nbttagcompound) { if (nbttagcompound != null) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index bd0e35fac15ca559d6508df8c7f593af036ab551..35116b1c893d0374359cc81bd8a29b5936940576 100644 +index 1645d07da9323fa67829823cfdfbc08b60a59b27..655feddd11b9793f43f4ec31b35b0cb15b0e5039 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1037,6 +1037,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1040,6 +1040,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { List[] aentityslice = chunk.getEntitySlices(); // Spigot int i = aentityslice.length; @@ -91,7 +91,7 @@ index bd0e35fac15ca559d6508df8c7f593af036ab551..35116b1c893d0374359cc81bd8a29b59 for (int j = 0; j < i; ++j) { List entityslice = aentityslice[j]; // Spigot Iterator iterator = entityslice.iterator(); -@@ -1049,11 +1050,25 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1052,11 +1053,25 @@ public class WorldServer extends World implements GeneratorAccessSeed { throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } diff --git a/Spigot-Server-Patches/0256-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0256-Ignore-Dead-Entities-in-entityList-iteration.patch index e32672d47..b567fa2a2 100644 --- a/Spigot-Server-Patches/0256-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0256-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -51,10 +51,10 @@ index 3b3cae92513a85ba842d403c68f5a1fb8fde785d..5ee581d1634f44a98756c5d11def9c3d if (oclass.isInstance(t0) && t0.getBoundingBox().c(axisalignedbb) && (predicate == null || predicate.test(t0))) { // Spigot - instance check list.add(t0); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 174329b9adbfa9de61f76ee92c85f6c77d65d3dc..2e1214c9ebf7915aa25aa4d405ec75f73d8e0594 100644 +index 81bbe63090f233ae45d4b4d614b6c84d4101b173..b71fd1aed640f7281047f74f72884ed1f7a72d0e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -192,6 +192,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -189,6 +189,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke protected int numCollisions = 0; // Paper public void inactiveTick() { } // Spigot end @@ -63,10 +63,10 @@ index 174329b9adbfa9de61f76ee92c85f6c77d65d3dc..2e1214c9ebf7915aa25aa4d405ec75f7 public float getBukkitYaw() { return this.yaw; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 35116b1c893d0374359cc81bd8a29b5936940576..13370a4a0d210bd3b14a26f60b1cd9a9a3a6c941 100644 +index 655feddd11b9793f43f4ec31b35b0cb15b0e5039..71370c813710cebbfcdbc92f3dc8170727537322 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1189,6 +1189,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1192,6 +1192,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { entity.origin = entity.getBukkitEntity().getLocation(); } // Paper end @@ -74,7 +74,7 @@ index 35116b1c893d0374359cc81bd8a29b5936940576..13370a4a0d210bd3b14a26f60b1cd9a9 new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid } -@@ -1201,6 +1202,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1204,6 +1205,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.removeEntityFromChunk(entity); this.entitiesById.remove(entity.getId()); this.unregisterEntity(entity); diff --git a/Spigot-Server-Patches/0261-Add-hand-to-bucket-events.patch b/Spigot-Server-Patches/0261-Add-hand-to-bucket-events.patch index 9eb6316e3..2b7d31443 100644 --- a/Spigot-Server-Patches/0261-Add-hand-to-bucket-events.patch +++ b/Spigot-Server-Patches/0261-Add-hand-to-bucket-events.patch @@ -95,10 +95,10 @@ index b7380f2ef554dc5f562340b7c59fd23cd1f271c1..8bb5f35dd211ef0267f55678bb568a7d public boolean s_() { return this.isClientSide; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 13370a4a0d210bd3b14a26f60b1cd9a9a3a6c941..0b7047863bb3a3f3d61491bb1924b94a0305e40a 100644 +index 71370c813710cebbfcdbc92f3dc8170727537322..4bbbf2c868d90f4ef1752e886ff0e6db84e0695b 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1527,15 +1527,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1530,15 +1530,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.getMinecraftServer().getPlayerList().sendAll(new PacketPlayOutSpawnPosition(blockposition, f)); } diff --git a/Spigot-Server-Patches/0282-Improve-death-events.patch b/Spigot-Server-Patches/0282-Improve-death-events.patch index c4c716cec..0d336cc38 100644 --- a/Spigot-Server-Patches/0282-Improve-death-events.patch +++ b/Spigot-Server-Patches/0282-Improve-death-events.patch @@ -27,10 +27,10 @@ index 6281f7900afab3ef1c9ba3c034b91cbfa1900f50..7f3401d5d7878e4a0f407e92bf110dbe 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 2e1214c9ebf7915aa25aa4d405ec75f73d8e0594..f6ad53b71c6d545a5989364516b8f2b17cfe7a63 100644 +index b71fd1aed640f7281047f74f72884ed1f7a72d0e..675ff9b2ce573439462f5554f470ffcb0a971107 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1453,6 +1453,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1450,6 +1450,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // CraftBukkit end @@ -38,7 +38,7 @@ index 2e1214c9ebf7915aa25aa4d405ec75f73d8e0594..f6ad53b71c6d545a5989364516b8f2b1 public void a(Entity entity, int i, DamageSource damagesource) { if (entity instanceof EntityPlayer) { CriterionTriggers.c.a((EntityPlayer) entity, this, damagesource); -@@ -2340,6 +2341,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2337,6 +2338,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.fallDistance = 0.0F; } diff --git a/Spigot-Server-Patches/0306-Reset-players-airTicks-on-respawn.patch b/Spigot-Server-Patches/0306-Reset-players-airTicks-on-respawn.patch index 75844f521..1416f62c9 100644 --- a/Spigot-Server-Patches/0306-Reset-players-airTicks-on-respawn.patch +++ b/Spigot-Server-Patches/0306-Reset-players-airTicks-on-respawn.patch @@ -5,10 +5,10 @@ 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 f6ad53b71c6d545a5989364516b8f2b17cfe7a63..47c0fd89a82d91dc6083f9600ac6889e2b27234b 100644 +index 675ff9b2ce573439462f5554f470ffcb0a971107..6f0050bacfda342719ba93e40743983e07868e51 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2253,6 +2253,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2250,6 +2250,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } @@ -17,7 +17,7 @@ index f6ad53b71c6d545a5989364516b8f2b17cfe7a63..47c0fd89a82d91dc6083f9600ac6889e return 300; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d1f716067e6c71f523c7561b9ef92f4296d1a726..01d679cfa6ad8f5dc5bb4539197a59cb00c65337 100644 +index ea06a264564c5cf4fef7de79e5795af13094effd..777b2f7e77d2b59d5a439252daf9d317ab82a838 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1997,6 +1997,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/Spigot-Server-Patches/0318-force-entity-dismount-during-teleportation.patch b/Spigot-Server-Patches/0318-force-entity-dismount-during-teleportation.patch index 7c84dc18c..22d8ca295 100644 --- a/Spigot-Server-Patches/0318-force-entity-dismount-during-teleportation.patch +++ b/Spigot-Server-Patches/0318-force-entity-dismount-during-teleportation.patch @@ -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 47c0fd89a82d91dc6083f9600ac6889e2b27234b..915378493d9c5bb501b21eb7aca380580716f4c3 100644 +index 6f0050bacfda342719ba93e40743983e07868e51..28873344d957fb4bababad36d5823ac43d13ab99 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1947,12 +1947,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1944,12 +1944,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } @@ -41,7 +41,7 @@ index 47c0fd89a82d91dc6083f9600ac6889e2b27234b..915378493d9c5bb501b21eb7aca38058 } } -@@ -2007,7 +2010,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2004,7 +2007,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return true; // CraftBukkit } @@ -53,7 +53,7 @@ index 47c0fd89a82d91dc6083f9600ac6889e2b27234b..915378493d9c5bb501b21eb7aca38058 if (entity.getVehicle() == this) { throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { -@@ -2017,7 +2023,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2014,7 +2020,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 47c0fd89a82d91dc6083f9600ac6889e2b27234b..915378493d9c5bb501b21eb7aca38058 ); // Suppress during worldgen if (this.valid) { -@@ -2031,7 +2037,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2028,7 +2034,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // CraftBukkit end // Spigot start diff --git a/Spigot-Server-Patches/0338-Add-LivingEntity-getTargetEntity.patch b/Spigot-Server-Patches/0338-Add-LivingEntity-getTargetEntity.patch index ef5931708..b68456cb0 100644 --- a/Spigot-Server-Patches/0338-Add-LivingEntity-getTargetEntity.patch +++ b/Spigot-Server-Patches/0338-Add-LivingEntity-getTargetEntity.patch @@ -46,10 +46,10 @@ index 02c09f39848399a86d46bd17569b4f01a7b5ab1f..ed9b2f9adfecdc6d1b9925579ec51065 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 915378493d9c5bb501b21eb7aca380580716f4c3..8832ffc0fcf9410ecc07ac100c2c8e3cd4dbddff 100644 +index 28873344d957fb4bababad36d5823ac43d13ab99..04410802030f31e772f9874252459222ce916e20 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1419,6 +1419,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1416,6 +1416,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.c(f - 90.0F, f1); } @@ -57,7 +57,7 @@ index 915378493d9c5bb501b21eb7aca380580716f4c3..8832ffc0fcf9410ecc07ac100c2c8e3c public final Vec3D j(float f) { if (f == 1.0F) { return new Vec3D(this.locX(), this.getHeadY(), this.locZ()); -@@ -2056,6 +2057,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2053,6 +2054,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.getPassengers().size() < 1; } diff --git a/Spigot-Server-Patches/0340-Entity-getEntitySpawnReason.patch b/Spigot-Server-Patches/0340-Entity-getEntitySpawnReason.patch index 9d368fd70..9ed768ee2 100644 --- a/Spigot-Server-Patches/0340-Entity-getEntitySpawnReason.patch +++ b/Spigot-Server-Patches/0340-Entity-getEntitySpawnReason.patch @@ -10,10 +10,10 @@ 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 8832ffc0fcf9410ecc07ac100c2c8e3cd4dbddff..c754809203e33375365bbd3730dd266efefd84d2 100644 +index 04410802030f31e772f9874252459222ce916e20..586f55cb78c639ed0079994d13d934b22c686002 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -74,6 +74,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -72,6 +72,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } }; List entitySlice = null; @@ -21,7 +21,7 @@ index 8832ffc0fcf9410ecc07ac100c2c8e3cd4dbddff..c754809203e33375365bbd3730dd266e // Paper end public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper -@@ -1585,6 +1586,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1582,6 +1583,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 8832ffc0fcf9410ecc07ac100c2c8e3cd4dbddff..c754809203e33375365bbd3730dd266e // Save entity's from mob spawner status if (spawnedViaMobSpawner) { nbttagcompound.setBoolean("Paper.FromMobSpawner", true); -@@ -1714,6 +1718,26 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1711,6 +1715,26 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } spawnedViaMobSpawner = nbttagcompound.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status @@ -84,10 +84,10 @@ index cb04de23dd8b506ebfd07d60acd082d6b7e14528..fbed3c1012c5b6fe61598ae6fae64edc }); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 0b7047863bb3a3f3d61491bb1924b94a0305e40a..ad9633747c4fc8546924c4d86ad45eb611c12102 100644 +index 4bbbf2c868d90f4ef1752e886ff0e6db84e0695b..ded3db003767e4455df1e6956b85ae4fc00f52fb 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -922,6 +922,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -925,6 +925,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/Spigot-Server-Patches/0354-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch b/Spigot-Server-Patches/0354-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch index 2d1c24285..07bc9ab9a 100644 --- a/Spigot-Server-Patches/0354-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch +++ b/Spigot-Server-Patches/0354-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch @@ -19,10 +19,10 @@ This change ensures the chunks are always loaded when entities are added to the world, or a valid entity moves between chunks. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index ad9633747c4fc8546924c4d86ad45eb611c12102..74a7fe5094a488a05352f4118ff350a5c17f96ba 100644 +index ded3db003767e4455df1e6956b85ae4fc00f52fb..d9e87ef45970cefa8e9cd49b257b344c316c4dd2 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -735,11 +735,18 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -738,11 +738,18 @@ public class WorldServer extends World implements GeneratorAccessSeed { int k = MathHelper.floor(entity.locZ() / 16.0D); if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) { @@ -42,7 +42,7 @@ index ad9633747c4fc8546924c4d86ad45eb611c12102..74a7fe5094a488a05352f4118ff350a5 if (entity.inChunk) { WorldServer.LOGGER.warn("Entity {} left loaded chunk area", entity); } -@@ -954,7 +961,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -957,7 +964,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { return false; } // CraftBukkit end diff --git a/Spigot-Server-Patches/0355-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0355-Duplicate-UUID-Resolve-Option.patch index cea8b5e29..d9c61a56a 100644 --- a/Spigot-Server-Patches/0355-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0355-Duplicate-UUID-Resolve-Option.patch @@ -93,10 +93,10 @@ index 5ee581d1634f44a98756c5d11def9c3d46fd53e9..8e3244fc5c6e5fff22857637b4ab5944 int k = MathHelper.floor(entity.locY() / 16.0D); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c754809203e33375365bbd3730dd266efefd84d2..fa67a0308d9fc89652a66af35919685fab06553d 100644 +index 586f55cb78c639ed0079994d13d934b22c686002..ca24d27cbc3100e989bf26c0f3f57cad3f97c11f 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2694,6 +2694,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2691,6 +2691,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke }); } @@ -197,7 +197,7 @@ index 4bbcd00950405a4bf3ce391b557049a3b1d4aee8..2db0f3e060850ae65033f878ed46b678 ChunkCoordIntPair chunkcoordintpair = playerchunk.i(); CompletableFuture, PlayerChunk.Failure>> completablefuture = this.a(chunkcoordintpair, 1, (i) -> { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 74a7fe5094a488a05352f4118ff350a5c17f96ba..9e3a519b14e4736ffb5b579fcc491003d4d08b83 100644 +index d9e87ef45970cefa8e9cd49b257b344c316c4dd2..01b72f5555fb8d9ce95deecf77301ed84e6049db 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -4,6 +4,8 @@ import com.google.common.annotations.VisibleForTesting; @@ -209,7 +209,7 @@ index 74a7fe5094a488a05352f4118ff350a5c17f96ba..9e3a519b14e4736ffb5b579fcc491003 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Queues; -@@ -989,7 +991,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -992,7 +994,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity1 == null) { return false; } else { diff --git a/Spigot-Server-Patches/0357-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0357-Configurable-Keep-Spawn-Loaded-range-per-world.patch index f49c233f2..db808b5d3 100644 --- a/Spigot-Server-Patches/0357-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0357-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -102,10 +102,10 @@ index 3868572aed50c8bffd93727a139a3fbb8dc19688..ae77805f71c6c574d92f39c51b1e48f2 @Override public void a(ChunkCoordIntPair chunkcoordintpair) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 9e3a519b14e4736ffb5b579fcc491003d4d08b83..da6d9495c869150ce83dfb284c5977d7f122e71b 100644 +index 01b72f5555fb8d9ce95deecf77301ed84e6049db..609d88c3d94e87ce9634f04205ca8c6cf76667d9 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1543,12 +1543,88 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1546,12 +1546,88 @@ public class WorldServer extends World implements GeneratorAccessSeed { return ((PersistentIdCounts) this.getMinecraftServer().E().getWorldPersistentData().a(PersistentIdCounts::new, "idcounts")).a(); } diff --git a/Spigot-Server-Patches/0366-incremental-chunk-saving.patch b/Spigot-Server-Patches/0366-incremental-chunk-saving.patch index 19486b4cc..871637e2d 100644 --- a/Spigot-Server-Patches/0366-incremental-chunk-saving.patch +++ b/Spigot-Server-Patches/0366-incremental-chunk-saving.patch @@ -265,10 +265,10 @@ index d8bedba819fa9ee0a4d3bdfbf0b010da7144dd68..c4ed4d58f7b344626acb13baeb142889 return PlayerChunk.getChunkState(playerchunk.getTicketLevel()); }); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index da6d9495c869150ce83dfb284c5977d7f122e71b..c679a3838a5f4c180fbc258d59cf202a6bd91a16 100644 +index 609d88c3d94e87ce9634f04205ca8c6cf76667d9..ff7d0960a3a7bd7ba7da61cc01207a27e45f3594 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -768,11 +768,43 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -771,11 +771,43 @@ public class WorldServer extends World implements GeneratorAccessSeed { return !this.server.a(this, blockposition, entityhuman) && this.getWorldBorder().a(blockposition); } @@ -313,7 +313,7 @@ index da6d9495c869150ce83dfb284c5977d7f122e71b..c679a3838a5f4c180fbc258d59cf202a try (co.aikar.timings.Timing ignored = timings.worldSave.startTiming()) { // Paper if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel")); -@@ -798,6 +830,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -801,6 +833,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit end } diff --git a/Spigot-Server-Patches/0370-Mark-entities-as-being-ticked-when-notifying-navigat.patch b/Spigot-Server-Patches/0370-Mark-entities-as-being-ticked-when-notifying-navigat.patch index 6773d896c..bf7f08d23 100644 --- a/Spigot-Server-Patches/0370-Mark-entities-as-being-ticked-when-notifying-navigat.patch +++ b/Spigot-Server-Patches/0370-Mark-entities-as-being-ticked-when-notifying-navigat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Mark entities as being ticked when notifying navigation diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index cb1f2360f798f061159c365f0ed72ac3132643e6..31e433168c61fb39bec846ca4ef73a39893709fe 100644 +index 5ea370c3344a720b3e0bff44938ada2019d6fa48..c7989ab2ad8e160cdbbc8ce3f47ce38828242fb0 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1355,6 +1355,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1358,6 +1358,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) { @@ -16,7 +16,7 @@ index cb1f2360f798f061159c365f0ed72ac3132643e6..31e433168c61fb39bec846ca4ef73a39 Iterator iterator = this.navigators.iterator(); while (iterator.hasNext()) { -@@ -1365,6 +1366,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1368,6 +1369,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } diff --git a/Spigot-Server-Patches/0373-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0373-Asynchronous-chunk-IO-and-loading.patch index ce5d0a3ff..2b03541c2 100644 --- a/Spigot-Server-Patches/0373-Asynchronous-chunk-IO-and-loading.patch +++ b/Spigot-Server-Patches/0373-Asynchronous-chunk-IO-and-loading.patch @@ -3505,7 +3505,7 @@ index 8e79200b23f2dee612b0cbdcd6359a25dc2323cb..e7d9674e25c06090d57bba6c8229bc3b return this.m; } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 1ee54e80a4a76f894c97198efbc3f064d93e661b..f90ae950c72b50dadb8b83301baf5b24c71536e4 100644 +index db2f4841ddec97f73882b16bc10af491f2471f86..53fe54354ee8a9e9c31bf97272d70c181e0776f1 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -539,6 +539,13 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -3910,7 +3910,7 @@ index d6aca683465c6898536507fab9e6888fef2e77e5..b926cebd053bef829517c9d9bbf1c609 HAS_SPACE(VillagePlaceRecord::d), IS_OCCUPIED(VillagePlaceRecord::e), ANY((villageplacerecord) -> { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 31e433168c61fb39bec846ca4ef73a39893709fe..45a1a6d64d92f9f191b7fc08fe3e56fd2786d03c 100644 +index c7989ab2ad8e160cdbbc8ce3f47ce38828242fb0..db34ac8eb46338114472874e892bd7f60dcbe589 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -94,6 +94,79 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -4002,7 +4002,7 @@ index 31e433168c61fb39bec846ca4ef73a39893709fe..45a1a6d64d92f9f191b7fc08fe3e56fd } // CraftBukkit start -@@ -1612,7 +1687,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1615,7 +1690,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { } MCUtil.getSpiralOutChunks(spawn, radiusInBlocks >> 4).forEach(pair -> { diff --git a/Spigot-Server-Patches/0379-implement-optional-per-player-mob-spawns.patch b/Spigot-Server-Patches/0379-implement-optional-per-player-mob-spawns.patch index f06987131..babf2920b 100644 --- a/Spigot-Server-Patches/0379-implement-optional-per-player-mob-spawns.patch +++ b/Spigot-Server-Patches/0379-implement-optional-per-player-mob-spawns.patch @@ -573,7 +573,7 @@ index 55feb186e4f3f7985efdf7c4410ed4232e52733e..dce9c62c0cf37a37994537b74dfdc228 this.p = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index bd79a9464618972305139566b21c8aaa0a5e23db..697068cbccde5b57f788246c2e1f4a5e7194993e 100644 +index f222ec5d943cc9ce7671db9fe8901e3a2ac9ec55..0ac879e6735f839d4fe1ef34b8d75efff661d3f1 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -87,6 +87,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -605,10 +605,10 @@ index bd79a9464618972305139566b21c8aaa0a5e23db..697068cbccde5b57f788246c2e1f4a5e return this.cj; } diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index ffb8685e7c457483bcf4b2ed1065fec0fbaa69e2..2767de830bdb9051ae6a6b7c30342175b117e7ed 100644 +index add85654783e9c3cebf2a2072cd2e07679de1bae..5c03fb3af34e13bc3b8bc1840c5a7e229cf9d1f7 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java -@@ -270,6 +270,7 @@ public class EntityTypes { +@@ -280,6 +280,7 @@ public class EntityTypes { return this.bl; }