From 6fda3fd0edbb6f777fcab3bea8781b816fc30d58 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 10 Sep 2020 18:02:39 -0400 Subject: [PATCH] (FINAL 1.16.2) Improve Timings support for Active vs Inactive vs Passengers This makes it so entities that are passengers of other entities no longer count in the parents timings, as well as tracks them as a separate timers per their tick status. This lets you see how much time is spent in activated entities vs inactive (as inactive still has to do work) Passengers is also tracked separately so you can identify "Villagers in Minecarts" vs roaming villagers, as the lack of ability to move can impact their performance characteristics. This will likely break any plugin that was naughty and directly messed with our internal timings as this moves the timings to the EntityTypes object, speeding up creation of Entities to no longer store a timing handler object per entity. This will also change the output of the entities in timings to use internal ID's instead of class names. If a plugin is broken by this, shame them for doing bad things. Paper will not fix it, they will have to fix it. --- Spigot-Server-Patches/0009-Timings-v2.patch | 103 +++++++++++++----- ...d-mobs-to-jump-and-take-water-damage.patch | 6 +- ...ck-and-tnt-entities-at-the-specified.patch | 4 +- .../0020-Player-affects-spawning-API.patch | 6 +- .../0025-Entity-Origin-API.patch | 16 +-- ...nfigurable-top-of-nether-void-damage.patch | 6 +- ...dd-configurable-portal-search-radius.patch | 6 +- ...oreboards-for-non-players-by-default.patch | 4 +- ...069-Use-a-Shared-Random-for-Entities.patch | 6 +- ...Entity-AddTo-RemoveFrom-World-Events.patch | 6 +- ...Remove-unused-World-Tile-Entity-List.patch | 8 +- ...item-frames-performance-and-bug-fixe.patch | 4 +- ...-API-Replenishable-Lootables-Feature.patch | 4 +- ...1-Optional-TNT-doesn-t-move-in-water.patch | 4 +- .../0105-Fix-Double-World-Add-issues.patch | 4 +- .../0112-Chunk-registration-fixes.patch | 4 +- ...llow-entities-to-ride-themselves-572.patch | 4 +- .../0138-Cap-Entity-Collisions.patch | 4 +- .../0156-Entity-fromMobSpawner.patch | 8 +- ...ld.spawnParticle-API-and-add-Builder.patch | 4 +- .../0236-InventoryCloseEvent-Reason-API.patch | 6 +- ...nilla-entity-warnings-for-duplicates.patch | 4 +- ...-more-information-to-Entity.toString.patch | 4 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 10 +- ...0-Vanished-players-don-t-have-rights.patch | 4 +- ...dd-some-Debug-to-Chunk-Entity-slices.patch | 4 +- ...revent-Saving-Bad-entities-to-chunks.patch | 6 +- ...ead-Entities-in-entityList-iteration.patch | 10 +- .../0261-Add-hand-to-bucket-events.patch | 4 +- .../0282-Improve-death-events.patch | 6 +- ...06-Reset-players-airTicks-on-respawn.patch | 6 +- ...entity-dismount-during-teleportation.patch | 10 +- ...338-Add-LivingEntity-getTargetEntity.patch | 6 +- .../0340-Entity-getEntitySpawnReason.patch | 12 +- ...h-entity-loss-due-to-unloaded-chunks.patch | 6 +- .../0355-Duplicate-UUID-Resolve-Option.patch | 8 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 4 +- .../0366-incremental-chunk-saving.patch | 6 +- ...-being-ticked-when-notifying-navigat.patch | 6 +- ...73-Asynchronous-chunk-IO-and-loading.patch | 6 +- ...ement-optional-per-player-mob-spawns.patch | 6 +- 41 files changed, 199 insertions(+), 146 deletions(-) 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; }