diff --git a/Paper b/Paper index 60e92c061..5b20df6bf 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 60e92c061b01295a4ef2b21272de75bd6a33f11b +Subproject commit 5b20df6bf05752da96c5a78c8e452d757a4ce306 diff --git a/patches/api/0007-AFK-API.patch b/patches/api/0007-AFK-API.patch index 66187de14..7b943878b 100644 --- a/patches/api/0007-AFK-API.patch +++ b/patches/api/0007-AFK-API.patch @@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..0c8b3e5e4ba412624357ea5662a78862 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b391c720b69714cf49f8733cf4440864ac3dcd72..a8883d6aa1f2cc8cf5fbdfa062bb7dc57b9b3d97 100644 +index 2ea531eaef8c455fdd503f0c0258813fe9136085..53e10ef71fcd904d59c9c9825b2a736b6b35027c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2125,4 +2125,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2076,4 +2076,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0016-Player-invulnerabilities.patch b/patches/api/0016-Player-invulnerabilities.patch index 8aa8f2e5e..c53ebf9fe 100644 --- a/patches/api/0016-Player-invulnerabilities.patch +++ b/patches/api/0016-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a8883d6aa1f2cc8cf5fbdfa062bb7dc57b9b3d97..40169da424f35ab815149842d52e7c58c0e1dc3f 100644 +index 53e10ef71fcd904d59c9c9825b2a736b6b35027c..117a073dcff9c6d00c54cf5214b92bd50cd67f2c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2145,5 +2145,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2096,5 +2096,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/api/0018-ItemStack-convenience-methods.patch b/patches/api/0018-ItemStack-convenience-methods.patch index cc5d522c2..9b35be27c 100644 --- a/patches/api/0018-ItemStack-convenience-methods.patch +++ b/patches/api/0018-ItemStack-convenience-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 2a3becabbd10fa8ffd19f35a3f6d8a6bfcb388c3..f71c9fd069309ef330d9065760b80ec10de7e18b 100644 +index 7b77c7132723a01e8c38ddaa616b363be300b653..c6b1131b1700797e0515045f4e5c81f85aa3449f 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -8642,4 +8642,36 @@ public enum Material implements Keyed { +@@ -8649,4 +8649,36 @@ public enum Material implements Keyed { // } } diff --git a/patches/api/0032-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0032-Fix-javadoc-warnings-missing-param-and-return.patch index e55378902..430003a76 100644 --- a/patches/api/0032-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0032-Fix-javadoc-warnings-missing-param-and-return.patch @@ -599,7 +599,7 @@ index d1757f3d456ff9efce26ce8baa1d16d896908cc2..a5db52386e11e4b5511ae417a0e7ac92 TASK(ChatColor.GREEN), CHALLENGE(ChatColor.DARK_PURPLE), diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 0c72d00ad238ab69d7ae0941e3ecb6c86e71624d..73cf7437795ef185860bfefe51d9481fa297a939 100644 +index a7bc431ea8e25abdc1bc575eb73d26b37a2049b3..b5129ec5009b65d46ccf4f1a05cc4af0b3d427e5 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -183,6 +183,9 @@ public interface Block extends Metadatable { @@ -932,10 +932,10 @@ index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e8 NORMAL(false), diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 40169da424f35ab815149842d52e7c58c0e1dc3f..db626ec13f520f4e731de976ef6248c21d23bec1 100644 +index 117a073dcff9c6d00c54cf5214b92bd50cd67f2c..0d1edff31a725f88f203fe3066ef1daf9c9a051e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1947,6 +1947,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1898,6 +1898,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); /** @@ -944,7 +944,7 @@ index 40169da424f35ab815149842d52e7c58c0e1dc3f..db626ec13f520f4e731de976ef6248c2 * @return the client option value of the player */ @NotNull -@@ -1986,6 +1988,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1937,6 +1939,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end // Spigot start diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 93f60c4d7..9fb9dd7a5 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -10318,10 +10318,10 @@ index 95ef96286855624590b72d69514b0fc0e08fddba..73163b417af7e522a4509bf9c1ab56d6 T t0 = this.h.a(this.a.a(i)); diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 5504facd2e453238caa71d98743be5416d4dd4fe..ecff0657e5666ddc2e6a5c3111bfb2b8dd2b78d3 100644 +index d4793a1d476d8d6687ec8782501c31265f284daa..2644b190813cc934914aeab78fbd6515d1a37c4a 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java -@@ -169,6 +169,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -175,6 +175,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer com.destroystokyo.paper.PaperConfig.registerCommands(); com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now // Paper end @@ -10329,7 +10329,7 @@ index 5504facd2e453238caa71d98743be5416d4dd4fe..ecff0657e5666ddc2e6a5c3111bfb2b8 this.setPVP(dedicatedserverproperties.pvp); this.setAllowFlight(dedicatedserverproperties.allowFlight); -@@ -357,7 +358,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -359,7 +360,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer } if (this.q != null) { @@ -10352,7 +10352,7 @@ index 550232cb3819138b3bae0fa1c51429485e8bc593..229c3b0f0c650b501f31147adaa17194 throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index e87e1b04e13593f1efa4d1c59cb9e433f2b3c694..787df099308e2e1c6485ba8a810a43eaff7f5cd7 100644 +index 534238688be75c53058dcfeabcdf86d9c0504089..50c61b633faaa47a86172315b53899d3747c8e27 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -136,7 +136,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -10878,7 +10878,7 @@ index f41aaa7623c052b9f4044898d1bdee898c03057a..d99cecc4075338d7b8f154ab94d8ac04 x = MathHelper.floorLong(x * 4096.0D) * (1 / 4096.0D); y = MathHelper.floorLong(y * 4096.0D) * (1 / 4096.0D); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index b7a362bd9c5e9dae909b863335bae3a94d404a16..87b66c284208f12e9e7cd1c9950ada8d0fbf26a5 100644 +index 9a79371b40803947ed5deef68c50d45683aaae52..d568db532de83a85d5c387121cec151c160f36bf 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2879,7 +2879,11 @@ public abstract class EntityLiving extends Entity { @@ -11135,7 +11135,7 @@ index 23017b5486530bcf76b3934cfa8621e8b4772b27..a4d94385ede0303417d676155c2c0b22 } } diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 3960a975e74ed81c45819fe5e0f01c6c18252982..81869215876d10a84ab27c0e6f41963c1346fd1c 100644 +index f2a9396c2ec64c79391782249db7507f12a69a9e..2402c18e6a18221a43bea9fc68278da9d19eede4 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -74,6 +74,7 @@ public class EntityTrackerEntry { @@ -11143,7 +11143,7 @@ index 3960a975e74ed81c45819fe5e0f01c6c18252982..81869215876d10a84ab27c0e6f41963c public final void tick() { this.a(); } // Paper - OBFHELPER public void a() { + com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Tracker update"); // Tuinity - List list = this.tracker.getPassengers(); + List list = this.tracker.passengers; // Paper - do not copy list if (!list.equals(this.p)) { @@ -156,7 +157,7 @@ public class EntityTrackerEntry { @@ -13390,7 +13390,7 @@ index 904c6a7d0a36b57bb4f693fc4fd0dd5b17adcbac..3127fc9dd87e82243e167862cae83ac8 if (chunk != null) { playerchunkmap.callbackExecutor.execute(() -> { diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 49008cdec739b19409fdaf1b0ed806a6c0e93200..61570ab947b5a153a4c2bcb5a09344f060e6052d 100644 +index e16cd5da219e41f16f9c04fd95b79fe5cf10f6b8..3ae51a3a5d863d58fde73934ed100fbd62e2b279 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -121,31 +121,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -13756,7 +13756,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..61570ab947b5a153a4c2bcb5a09344f0 } // Paper end - optimised tracker diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index d77070eaa8fcecf2c142438c5219574c6b4e68cf..891a5bd192389ce80e77b9b5c53029860c86bc8b 100644 +index f3679a3ad2d51612381bc47bb23eeffec924d478..24b8a27b46c9e617fe3db6317da60227dbb60a1e 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -423,7 +423,9 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -14122,18 +14122,18 @@ index 114e986e5132e5e4bb42d0f08a067429bce53ba6..05656ea8448aa569e8dd480461e2d5f7 this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition)); // CraftBukkit - SPIGOT-5196 } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index c970b8bec13741fcd4d5ce71fd77d0f9ed633088..2aafb0295e37eae3510fd5c5105ad53fa6f2690c 100644 +index 610613c2dbea18e1064c5f29cc36cf39aece2277..193a39ba0c07b0f438aba6b3a00af51fa93bd53d 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -100,6 +100,7 @@ public abstract class PlayerList { - } +@@ -101,6 +101,7 @@ public abstract class PlayerList { + abstract public void loadAndSaveFiles(); // Paper - moved from DedicatedPlayerList constructor public void a(NetworkManager networkmanager, EntityPlayer entityplayer) { + entityplayer.isRealPlayer = true; // Paper // Tuinity - this is a better place to write this that works and isn't overriden by plugins EntityPlayer prev = pendingPlayers.put(entityplayer.getUniqueID(), entityplayer);// Paper if (prev != null) { disconnectPendingPlayer(prev); -@@ -640,7 +641,7 @@ public abstract class PlayerList { +@@ -641,7 +642,7 @@ public abstract class PlayerList { SocketAddress socketaddress = loginlistener.networkManager.getSocketAddress(); EntityPlayer entity = new EntityPlayer(this.server, this.server.getWorldServer(World.OVERWORLD), gameprofile, new PlayerInteractManager(this.server.getWorldServer(World.OVERWORLD))); @@ -15215,122 +15215,42 @@ index ad3609f2b884f64f1a1a449036cece49a46e933e..d3d28f97f9d2f969a182aec5e0947b69 } else if (this.b < 5) { this.a.long2LongEntrySet().removeIf((entry) -> { diff --git a/src/main/java/net/minecraft/server/SensorNearestItems.java b/src/main/java/net/minecraft/server/SensorNearestItems.java -index 2e747158d48ab28ac1611990cc97aa4a9e30b30e..1de170b9fe6f2888da6dcf0151aaf1f865691c6a 100644 +index edf7d31e8e06f67be58282b2a76d1ac899b4f3e8..4dc9c47d5bb021b046ad525769fc87122c18cd0a 100644 --- a/src/main/java/net/minecraft/server/SensorNearestItems.java +++ b/src/main/java/net/minecraft/server/SensorNearestItems.java -@@ -18,20 +18,23 @@ public class SensorNearestItems extends Sensor { +@@ -5,7 +5,6 @@ import java.util.Comparator; + import java.util.List; + import java.util.Optional; + import java.util.Set; +-import java.util.stream.Stream; - protected void a(WorldServer worldserver, EntityInsentient entityinsentient) { - BehaviorController behaviorcontroller = entityinsentient.getBehaviorController(); -- List list = worldserver.a(EntityItem.class, entityinsentient.getBoundingBox().grow(8.0D, 4.0D, 8.0D), (entityitem) -> { -- return true; -+ // Tuinity start - remove streams -+ List list = worldserver.a(EntityItem.class, entityinsentient.getBoundingBox().grow(8.0D, 4.0D, 8.0D), (EntityItem item) -> { -+ return entityinsentient.i(item.getItemStack()) && item.a((Entity)entityinsentient, 9.0D); // copied from removed code, make sure to update - move here so we sort less - }); + public class SensorNearestItems extends Sensor { -- entityinsentient.getClass(); -- list.sort(Comparator.comparingDouble(entityinsentient::h)); -- Stream stream = list.stream().filter((entityitem) -> { -- return entityinsentient.i(entityitem.getItemStack()); -- }).filter((entityitem) -> { -- return entityitem.a((Entity) entityinsentient, 9.0D); -- }); -- -- entityinsentient.getClass(); -- Optional optional = stream.filter(entityinsentient::hasLineOfSight).findFirst(); -+ list.sort(Comparator.comparingDouble(entityinsentient::h)); // better to take the sort perf hit than using line of sight more than we need to. -+ EntityItem nearest = null; -+ for (int index = 0, len = list.size(); index < len; ++index) { -+ EntityItem item = list.get(index); -+ if (entityinsentient.hasLineOfSight(item)) { -+ nearest = item; -+ break; -+ } -+ } -+ -+ Optional optional = Optional.ofNullable(nearest); -+ // Tuinity end - remove streams - - behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, optional); - } diff --git a/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java b/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java -index f6568a54ab85bc3a682f6fbb19dda7a783625bbe..4005df5ef3dec956a54feff539db2e63c226059a 100644 +index b3388d4a665e8f91083a2e746482a9f0bd988da1..c049389aebf41894f64ed51eeabe57b0988c1262 100644 --- a/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java +++ b/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java -@@ -21,10 +21,17 @@ public class SensorNearestLivingEntities extends Sensor { - list.sort(Comparator.comparingDouble(entityliving::h)); - BehaviorController behaviorcontroller = entityliving.getBehaviorController(); +@@ -4,7 +4,6 @@ import com.google.common.collect.ImmutableSet; + import java.util.Comparator; + import java.util.List; + import java.util.Set; +-import java.util.stream.Collectors; -- behaviorcontroller.setMemory(MemoryModuleType.MOBS, (Object) list); -- behaviorcontroller.setMemory(MemoryModuleType.VISIBLE_MOBS, list.stream().filter((entityliving1) -> { -- return a(entityliving, entityliving1); -- }).collect(Collectors.toList())); -+ behaviorcontroller.setMemory(MemoryModuleType.MOBS, list); // Tuinity - decompile fix -+ // Tuinity start - remove streams -+ List visible = new java.util.ArrayList<>(list.size()); -+ for (int index = 0, len = list.size(); index < len; ++index) { -+ EntityLiving nearby = list.get(index); -+ if (Sensor.a(entityliving, nearby)) { // copied from removed code, make sure to update -+ visible.add(nearby); -+ } -+ } -+ behaviorcontroller.setMemory(MemoryModuleType.VISIBLE_MOBS, visible); -+ // Tuinity end - remove streams - } + public class SensorNearestLivingEntities extends Sensor { - @Override diff --git a/src/main/java/net/minecraft/server/SensorNearestPlayers.java b/src/main/java/net/minecraft/server/SensorNearestPlayers.java -index 904a6d5ac61d2ac81f1057068383e9ab432852db..fa2d366ca6695c099c29469bf69a7845350b4f07 100644 +index ee7b7a9fe393137171bbe2af5c7e3b864cb3aa99..defd6570ea4e42d6f77ef18d63385f2a9f5a07db 100644 --- a/src/main/java/net/minecraft/server/SensorNearestPlayers.java +++ b/src/main/java/net/minecraft/server/SensorNearestPlayers.java -@@ -19,22 +19,31 @@ public class SensorNearestPlayers extends Sensor { +@@ -5,8 +5,6 @@ import java.util.Comparator; + import java.util.List; + import java.util.Optional; + import java.util.Set; +-import java.util.stream.Collectors; +-import java.util.stream.Stream; - @Override - protected void a(WorldServer worldserver, EntityLiving entityliving) { -- Stream stream = worldserver.getPlayers().stream().filter(IEntitySelector.g).filter((entityplayer) -> { -- return entityliving.a((Entity) entityplayer, 16.0D); -- }); -- -- entityliving.getClass(); -- List list = (List) stream.sorted(Comparator.comparingDouble(entityliving::h)).collect(Collectors.toList()); -+ // Tuinity start - remove streams -+ List nearby = (List)worldserver.getNearbyPlayers(entityliving, entityliving.locX(), entityliving.locY(), entityliving.locZ(), -+ 16.0, IEntitySelector.g); -+ nearby.sort((e1, e2) -> Double.compare(entityliving.getDistanceSquared(e1), entityliving.getDistanceSquared(e2))); - BehaviorController behaviorcontroller = entityliving.getBehaviorController(); + public class SensorNearestPlayers extends Sensor { -- behaviorcontroller.setMemory(MemoryModuleType.NEAREST_PLAYERS, (Object) list); -- List list1 = (List) list.stream().filter((entityhuman) -> { -- return a(entityliving, (EntityLiving) entityhuman); -- }).collect(Collectors.toList()); -- -- behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, (Object) (list1.isEmpty() ? null : (EntityHuman) list1.get(0))); -- Optional optional = list1.stream().filter(IEntitySelector.f).findFirst(); -- -- behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_TARGETABLE_PLAYER, optional); -+ behaviorcontroller.setMemory(MemoryModuleType.NEAREST_PLAYERS, nearby); -+ EntityHuman first = null; -+ EntityHuman firstNonSpectator = null; -+ for (int index = 0, len = nearby.size(); index < len; ++index) { -+ EntityHuman entity = nearby.get(index); -+ if (!Sensor.a(entityliving, (EntityLiving)entity)) { // copied from removed code, make sure to update -+ continue; -+ } -+ if (first == null) { -+ first = entity; -+ } -+ if (IEntitySelector.f.test(entity)) { // copied from removed code, make sure to update -+ firstNonSpectator = entity; -+ break; -+ } -+ } -+ -+ behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, first); -+ behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_TARGETABLE_PLAYER, Optional.ofNullable(firstNonSpectator)); -+ // Tuinity end - remove streams - } - } diff --git a/src/main/java/net/minecraft/server/SensorVillagerBabies.java b/src/main/java/net/minecraft/server/SensorVillagerBabies.java index a367bbfde4fbfeca6d01dec49c05f5e185aab43a..794b33a13b7f11b973caf085b0bded9b2135a4d7 100644 --- a/src/main/java/net/minecraft/server/SensorVillagerBabies.java @@ -15498,7 +15418,7 @@ index 5c789b25f1df2eae8ea8ceb4ba977ba336fe6d5e..3c964f26592fc84bb5fc11c60808d11c return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index aa1b18ffa1e2b7f865f63b7df81d8f3b3d5aa966..3f9ba8ef2ae4f870c1567454fcb6678895a5094a 100644 +index 8c3aa47a28914fd69a7f2e55a8c8f91d8e02371e..afc2ddf519cf4930663f1859b8ce89a7b825f332 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -49,6 +49,11 @@ public class UserCache { @@ -15572,7 +15492,7 @@ index aa1b18ffa1e2b7f865f63b7df81d8f3b3d5aa966..3f9ba8ef2ae4f870c1567454fcb66788 } // Paper start -@@ -287,7 +300,9 @@ public class UserCache { +@@ -288,7 +301,9 @@ public class UserCache { } private Stream a(int i) { @@ -16582,10 +16502,10 @@ index f5ab99156ce5429e63976183cbf115d5340a83a1..970c1be5477a01ab9c6d79e84c519e22 public abstract Entity getEntity(int i); diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java -index f011869880fedae4b69e505491e8bdbc5f51dfba..0d10d317cd0b60fc0866ae505c7fd71fa886c48b 100644 +index 6e82c1d1b272a95144bfc78d34b630c24466fa3e..6b4c007550c3e2e405314d8931630557655ce6f1 100644 --- a/src/main/java/net/minecraft/server/WorldBorder.java +++ b/src/main/java/net/minecraft/server/WorldBorder.java -@@ -47,11 +47,59 @@ public class WorldBorder { +@@ -50,11 +50,59 @@ public class WorldBorder { return axisalignedbb.maxX > this.e() && axisalignedbb.minX < this.g() && axisalignedbb.maxZ > this.f() && axisalignedbb.minZ < this.h(); } @@ -16645,7 +16565,7 @@ index f011869880fedae4b69e505491e8bdbc5f51dfba..0d10d317cd0b60fc0866ae505c7fd71f public VoxelShape c() { return this.j.m(); } -@@ -67,18 +115,22 @@ public class WorldBorder { +@@ -70,18 +118,22 @@ public class WorldBorder { return Math.min(d6, d3); } diff --git a/patches/server/0002-Rebrand.patch b/patches/server/0002-Rebrand.patch index 8c1240a75..c04546486 100644 --- a/patches/server/0002-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -195,7 +195,7 @@ index 9e339b1c76e28987936f79ccc65a09c21c6aac5e..4f7cfef40225bea13efa37468f51643a private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index ac5003dc827217bd1947c71044abcbcbd2210dcd..37c561fb775cf7dd955b185b4ea94fecc574be63 100644 +index e8d33a9a3e25e47a3ec6a6b5646fc317f3a00959..a9c188c42c63d6e073bae3c77f1dacd2c3fc4602 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -370,7 +370,7 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0003-Purpur-config-files.patch b/patches/server/0003-Purpur-config-files.patch index ebd14e9e6..7a5054d8f 100644 --- a/patches/server/0003-Purpur-config-files.patch +++ b/patches/server/0003-Purpur-config-files.patch @@ -45,10 +45,10 @@ index c56e7fb18f9a56c8025eb70a524f028b5942da37..4b9fdb4f04b333ce32f7fca8f279bf98 config.save(CONFIG_FILE); } catch (IOException ex) { diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index ecff0657e5666ddc2e6a5c3111bfb2b8dd2b78d3..3ee8d31c453105eca7b96bede39a9ebbf40e1c2c 100644 +index 2644b190813cc934914aeab78fbd6515d1a37c4a..e3721b53db68171665ba05201155d088ae3cb89f 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java -@@ -167,6 +167,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -173,6 +173,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer return false; } com.destroystokyo.paper.PaperConfig.registerCommands(); diff --git a/patches/server/0008-AFK-API.patch b/patches/server/0008-AFK-API.patch index d894cfad9..5d4eab24a 100644 --- a/patches/server/0008-AFK-API.patch +++ b/patches/server/0008-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 59b00c78f8d92bcceca35d0f25e4d94b3ebdc6e2..e0cf2af8fcbfc66fc32aa8e693b62160b24f8672 100644 +index cc2127b26e41182c14fa95afde878e9b5100a117..7cacaae4ec8b09d12d35f0f22c0e9ec5a48d46a4 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -82,6 +82,15 @@ public abstract class EntityHuman extends EntityLiving { +@@ -84,6 +84,15 @@ public abstract class EntityHuman extends EntityLiving { } // CraftBukkit end @@ -149,7 +149,7 @@ index b5e1a860a2569d7668330827614d221b60f3fc78..5f85a1d513f4fdc21b64e1a2b6882e33 // Paper start public static final Predicate affectsSpawning = (entity) -> { diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 891a5bd192389ce80e77b9b5c53029860c86bc8b..e1e6f88f94c86fb4254676bc6a26b8a03a4d668e 100644 +index 24b8a27b46c9e617fe3db6317da60227dbb60a1e..ee9fa89c15d52ae00f33c7e3d3102ca107055160 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -252,6 +252,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -263,10 +263,10 @@ index 361f7857e461578e90cb71e15027dadaf794cb69..2578a4677d1ee060f687be531e696b7c + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0a7777f97b85842aa7f214479dcc7a9e6a4bee8a..3c177abe4ff7e885822dca23684df741021c3941 100644 +index fc761a3bd87004f16ff9b0a3b0add52f7938f566..2460791eaed07ca4a42e945bf6f5ae907b4105cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2456,4 +2456,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2426,4 +2426,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return spigot; } // Spigot end diff --git a/patches/server/0011-LivingEntity-safeFallDistance.patch b/patches/server/0011-LivingEntity-safeFallDistance.patch index 0257ff255..22262f370 100644 --- a/patches/server/0011-LivingEntity-safeFallDistance.patch +++ b/patches/server/0011-LivingEntity-safeFallDistance.patch @@ -17,7 +17,7 @@ index 702242653a47051c9ed32304c427c27652af6157..9f4f56c47ecd4b35ebf33ca0bf9a0400 @Override diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 2a91f07ca9c4dc0cb3b5aef5c9c1db7f69773530..7604fd83de9cfe93d427a9a1f6bbbee76aa861e8 100644 +index 5f9ee870697de306f595120bec05ba98d2fcb534..895c092197404ad4911ec9f94d1bda1322e45fa7 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -210,7 +210,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -30,7 +30,7 @@ index 2a91f07ca9c4dc0cb3b5aef5c9c1db7f69773530..7604fd83de9cfe93d427a9a1f6bbbee7 protected int getChestSlots() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 87b66c284208f12e9e7cd1c9950ada8d0fbf26a5..59699bb23a189b7e53737b2f8f5263608a64109c 100644 +index d568db532de83a85d5c387121cec151c160f36bf..ebe18e5926bb9e7d2dacdb09c213c0ad6fb847c4 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -133,6 +133,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0016-Player-invulnerabilities.patch b/patches/server/0016-Player-invulnerabilities.patch index 4865fd443..952e1df60 100644 --- a/patches/server/0016-Player-invulnerabilities.patch +++ b/patches/server/0016-Player-invulnerabilities.patch @@ -67,7 +67,7 @@ index a4e266955ada46db08b1815e549fa4bde9606df2..599d7fbc4db928a9825e154c09c9a74d public Scoreboard getScoreboard() { return getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index e1e6f88f94c86fb4254676bc6a26b8a03a4d668e..0cde6d65d67ec599e83d3a6dc5a6708eb67fc9ac 100644 +index ee9fa89c15d52ae00f33c7e3d3102ca107055160..958b7eadbab06226259c9ae9db7615cc71fa7c56 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -1737,6 +1737,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -79,10 +79,10 @@ index e1e6f88f94c86fb4254676bc6a26b8a03a4d668e..0cde6d65d67ec599e83d3a6dc5a6708e this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus)); // Paper end diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 2aafb0295e37eae3510fd5c5105ad53fa6f2690c..4544c9ba658aa866d6443dcfb970ddcbdcae289c 100644 +index 193a39ba0c07b0f438aba6b3a00af51fa93bd53d..56a20edf21427eee9ae292de42a790e9d1c4bf9d 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -918,6 +918,8 @@ public abstract class PlayerList { +@@ -919,6 +919,8 @@ public abstract class PlayerList { } // Paper end @@ -108,10 +108,10 @@ index 2578a4677d1ee060f687be531e696b7c7be89e84..c441fcea9b2b5a77b801c8a69541cf42 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3c177abe4ff7e885822dca23684df741021c3941..bb954462b5443ca93d833d460cbd1d0cb6292309 100644 +index 2460791eaed07ca4a42e945bf6f5ae907b4105cb..2b25e58ce0d5b6d54c65e70cffd46e1085b02275 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2472,5 +2472,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2442,5 +2442,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetIdleTimer(); } diff --git a/patches/server/0019-Alternative-Keepalive-Handling.patch b/patches/server/0019-Alternative-Keepalive-Handling.patch index 2d476aeb1..b09f7d055 100644 --- a/patches/server/0019-Alternative-Keepalive-Handling.patch +++ b/patches/server/0019-Alternative-Keepalive-Handling.patch @@ -17,7 +17,7 @@ index 8e93f1540ba5f995489c1fbcec70d10b011cd9c3..470f92c4fb0919d052b19acff8dff533 return this.a; } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 0cde6d65d67ec599e83d3a6dc5a6708eb67fc9ac..41d7c78e93e1b60c6fbef1da6329012724389633 100644 +index 958b7eadbab06226259c9ae9db7615cc71fa7c56..2f224844dca78f92997ff712ff527e09ada88cac 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -86,6 +86,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0025-Giants-AI-settings.patch b/patches/server/0025-Giants-AI-settings.patch index 3b3fcc2e5..8dab5bdd7 100644 --- a/patches/server/0025-Giants-AI-settings.patch +++ b/patches/server/0025-Giants-AI-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 787df099308e2e1c6485ba8a810a43eaff7f5cd7..b3329f719a58f62485803d642fc08396c3bdc9e9 100644 +index 50c61b633faaa47a86172315b53899d3747c8e27..6282e02c063e3b72889d85bbf3a5e0ca17919a02 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -136,7 +136,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -118,7 +118,7 @@ index a47217c020d2c2a3caddafa0549dc827373798dd..07908edcaffb5ee1be8a71f3f0affb91 float f = difficultydamagescaler.d(); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 59699bb23a189b7e53737b2f8f5263608a64109c..8ebfc9b8cf82ba914d5e56aca330033f176be334 100644 +index ebe18e5926bb9e7d2dacdb09c213c0ad6fb847c4..996242d7c62984b67b9443356c509d0c7c85e33a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -166,6 +166,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0032-Dont-send-useless-entity-packets.patch b/patches/server/0032-Dont-send-useless-entity-packets.patch index e282b094d..7ce1309a6 100644 --- a/patches/server/0032-Dont-send-useless-entity-packets.patch +++ b/patches/server/0032-Dont-send-useless-entity-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont send useless entity packets diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 81869215876d10a84ab27c0e6f41963c1346fd1c..f3b37f5704d752d1ec4d4d916690907dace67183 100644 +index 2402c18e6a18221a43bea9fc68278da9d19eede4..e51b6bd0698593867e6821326d223770766d717f 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -172,6 +172,7 @@ public class EntityTrackerEntry { diff --git a/patches/server/0039-Cows-eat-mushrooms.patch b/patches/server/0039-Cows-eat-mushrooms.patch index 91bce3377..016cfb772 100644 --- a/patches/server/0039-Cows-eat-mushrooms.patch +++ b/patches/server/0039-Cows-eat-mushrooms.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cows eat mushrooms diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b3329f719a58f62485803d642fc08396c3bdc9e9..a08499eeabcceb84125c2e3a98adeb447f25a229 100644 +index 6282e02c063e3b72889d85bbf3a5e0ca17919a02..1d97191217f568681b6507027c2113b2a15f3569 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2778,6 +2778,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -110,7 +110,7 @@ index 42e6761c8b18b79ffd3f4d5e853ea87a2c153c23..cfb009c811bd2908d38da1b0007cb7aa public EntityCow createChild(WorldServer worldserver, EntityAgeable entityageable) { return (EntityCow) EntityTypes.COW.a((World) worldserver); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 8ebfc9b8cf82ba914d5e56aca330033f176be334..ac9ac19c265e4be440531656a109b0468864637e 100644 +index 996242d7c62984b67b9443356c509d0c7c85e33a..8cc440e0e7108e2c7ca29b2f8a2fc5a723dcef0d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -81,7 +81,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0041-Pigs-give-saddle-back.patch b/patches/server/0041-Pigs-give-saddle-back.patch index 06028b58e..5d5df6e57 100644 --- a/patches/server/0041-Pigs-give-saddle-back.patch +++ b/patches/server/0041-Pigs-give-saddle-back.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pigs give saddle back diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index ee94c2827cfc53f7a37e61d8c1c0c30a52374cf8..7f52c39234e69b612b89993ce4503c20690064ed 100644 +index 01ca5983cade997b1f0d27fdf495c74c6daa0922..6ea3e4ffc3f42f4282adf3554944f24d92ca2079 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -109,6 +109,18 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable { diff --git a/patches/server/0045-Signs-allow-color-codes.patch b/patches/server/0045-Signs-allow-color-codes.patch index 4fb372884..df0f399af 100644 --- a/patches/server/0045-Signs-allow-color-codes.patch +++ b/patches/server/0045-Signs-allow-color-codes.patch @@ -17,7 +17,7 @@ index 599d7fbc4db928a9825e154c09c9a74d39a39a03..8bfff671ed779991b8ef5433cfec61b4 this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 41d7c78e93e1b60c6fbef1da6329012724389633..fd0c49173c0ae6324489f8152117c95aec8d43e8 100644 +index 2f224844dca78f92997ff712ff527e09ada88cac..1faaf6b7d3c45ad9445b0d6b3842a5ee24dc8275 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2902,6 +2902,15 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0047-Controllable-Minecarts.patch b/patches/server/0047-Controllable-Minecarts.patch index e9cb3079e..16459c759 100644 --- a/patches/server/0047-Controllable-Minecarts.patch +++ b/patches/server/0047-Controllable-Minecarts.patch @@ -22,7 +22,7 @@ index 2291135eaef64c403183724cb6e413cd7e472672..bc61aaff65a7dc1e7534452b285953b8 super(i, j, k); } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ac9ac19c265e4be440531656a109b0468864637e..4e2149b422a643bd30c8d8d13adc9e5f5f2a8cca 100644 +index 8cc440e0e7108e2c7ca29b2f8a2fc5a723dcef0d..46b1bc644c0584fe7006ea9f111d7f4837299dc9 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -99,9 +99,9 @@ public abstract class EntityLiving extends Entity { @@ -39,7 +39,7 @@ index ac9ac19c265e4be440531656a109b0468864637e..4e2149b422a643bd30c8d8d13adc9e5f protected double aV; protected double aW; diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index 022dfdc5b6af4b243e7e4da8660e8e41d04e1a30..298af30b1a7f12d42216fc1b7ee801fd7be93d3c 100644 +index be859a1b41254b299a507d03e453dc8efee6f3dd..4de2877f30a9b231a5c8bbd1739416991e9d7633 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java @@ -445,16 +445,62 @@ public abstract class EntityMinecartAbstract extends Entity { diff --git a/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch index 0468861c9..2280fd22e 100644 --- a/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 4e2149b422a643bd30c8d8d13adc9e5f5f2a8cca..762f65d7e12c020f4acdc8a0a9a102997442a45e 100644 +index 46b1bc644c0584fe7006ea9f111d7f4837299dc9..1dddf80e11db54a666de8c3b0d7a5c8a5f1f93ab 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -1501,8 +1501,10 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0052-Fix-the-dead-lagging-the-server.patch b/patches/server/0052-Fix-the-dead-lagging-the-server.patch index a37346a69..8a19c3714 100644 --- a/patches/server/0052-Fix-the-dead-lagging-the-server.patch +++ b/patches/server/0052-Fix-the-dead-lagging-the-server.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix the dead lagging the server diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index a08499eeabcceb84125c2e3a98adeb447f25a229..088438c3b7ade15fbf36475da7d97ad3a377dc2a 100644 +index 1d97191217f568681b6507027c2113b2a15f3569..2feea42d6d5bb99cdf1ddb7b8a86e09974cb6677 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1523,6 +1523,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -17,7 +17,7 @@ index a08499eeabcceb84125c2e3a98adeb447f25a229..088438c3b7ade15fbf36475da7d97ad3 public void f(double d0, double d1, double d2) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 762f65d7e12c020f4acdc8a0a9a102997442a45e..1ae5ac6ae52a2687469dfce547b53949f15adb28 100644 +index 1dddf80e11db54a666de8c3b0d7a5c8a5f1f93ab..b273b021b0e3484a3189c3d6d55284b3c45a41ad 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2500,7 +2500,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0054-Add-permission-for-F3-N-debug.patch b/patches/server/0054-Add-permission-for-F3-N-debug.patch index fdb5012f9..b179a4bb5 100644 --- a/patches/server/0054-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0054-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 4544c9ba658aa866d6443dcfb970ddcbdcae289c..8e25ecc687a9e222a7acba8f4ee12312dd9c0c52 100644 +index 56a20edf21427eee9ae292de42a790e9d1c4bf9d..3501c42e11a5b1f690bcbf26bcea4ebbfbba1cb1 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1077,6 +1077,7 @@ public abstract class PlayerList { +@@ -1078,6 +1078,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + i); } diff --git a/patches/server/0066-Add-player-death-exp-control-options.patch b/patches/server/0066-Add-player-death-exp-control-options.patch index 9abb63ebe..01789712b 100644 --- a/patches/server/0066-Add-player-death-exp-control-options.patch +++ b/patches/server/0066-Add-player-death-exp-control-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index e0cf2af8fcbfc66fc32aa8e693b62160b24f8672..093df82d49bfa6c34f081a719b5212ec8a312657 100644 +index 7cacaae4ec8b09d12d35f0f22c0e9ec5a48d46a4..10365180f518042d56929d0c0061e5297b73cf9b 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -83,6 +83,8 @@ public abstract class EntityHuman extends EntityLiving { +@@ -85,6 +85,8 @@ public abstract class EntityHuman extends EntityLiving { // CraftBukkit end // Purpur start @@ -17,7 +17,7 @@ index e0cf2af8fcbfc66fc32aa8e693b62160b24f8672..093df82d49bfa6c34f081a719b5212ec public void setAfk(boolean setAfk){ } -@@ -1697,9 +1699,18 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1710,9 +1712,18 @@ public abstract class EntityHuman extends EntityLiving { @Override protected int getExpValue(EntityHuman entityhuman) { if (!this.world.getGameRules().getBoolean(GameRules.KEEP_INVENTORY) && !this.isSpectator()) { diff --git a/patches/server/0067-Add-canSaveToDisk-to-Entity.patch b/patches/server/0067-Add-canSaveToDisk-to-Entity.patch index e1b3b5903..d7a7fdd25 100644 --- a/patches/server/0067-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0067-Add-canSaveToDisk-to-Entity.patch @@ -17,7 +17,7 @@ index 076d6c1e1cc049dd312ecb30518e7b25fc2d7371..5f04591193d58ba7897194142da5efcb final int saveLimit = worldserver.paperConfig.entityPerChunkSaveLimits.getOrDefault(entityType, -1); if (saveLimit > -1) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 088438c3b7ade15fbf36475da7d97ad3a377dc2a..f2e43eaea7a131fb6a3d2ef666698562595082b5 100644 +index 2feea42d6d5bb99cdf1ddb7b8a86e09974cb6677..7688f767cc946ffd8efb3867c960dea7719cac97 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -308,6 +308,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0068-Configurable-void-damage-height.patch b/patches/server/0068-Configurable-void-damage-height.patch index f5c646de4..852651b76 100644 --- a/patches/server/0068-Configurable-void-damage-height.patch +++ b/patches/server/0068-Configurable-void-damage-height.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable void damage height diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f2e43eaea7a131fb6a3d2ef666698562595082b5..b6c5d6476db96e3eba5f6c2468c2dce8f2b42730 100644 +index 7688f767cc946ffd8efb3867c960dea7719cac97..53e23b57d70b28d2912dda1cb6cdf4e369ec50d8 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -611,7 +611,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0070-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0070-Add-option-for-boats-to-eject-players-on-land.patch index 8811b751b..ced4a492d 100644 --- a/patches/server/0070-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0070-Add-option-for-boats-to-eject-players-on-land.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option for boats to eject players on land diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java -index baa4a61114e7460c74027e1519332f0dd9582647..603910a6f9ecc34be9eb2d4fb28e5c2e20aca90a 100644 +index 15ce9f90306d062f36d1651d7426813e897523bf..05c702bbdb8addea5c69faa0479609e8959945f1 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -442,6 +442,7 @@ public class EntityBoat extends Entity { diff --git a/patches/server/0074-Implement-elytra-settings.patch b/patches/server/0074-Implement-elytra-settings.patch index b493a979c..320a287a9 100644 --- a/patches/server/0074-Implement-elytra-settings.patch +++ b/patches/server/0074-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 1ae5ac6ae52a2687469dfce547b53949f15adb28..ba678ad67d1a48724738a71e1ff3b4e85b672f2c 100644 +index b273b021b0e3484a3189c3d6d55284b3c45a41ad..8bc0fb58ef18ce7828451857a97460bbde567c6b 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2858,7 +2858,16 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0075-Item-entity-immunities.patch b/patches/server/0075-Item-entity-immunities.patch index 721b4cbdd..c5a3863ce 100644 --- a/patches/server/0075-Item-entity-immunities.patch +++ b/patches/server/0075-Item-entity-immunities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b6c5d6476db96e3eba5f6c2468c2dce8f2b42730..94050662ad3d74ec9f7c313a3ef075ec1670e961 100644 +index 53e23b57d70b28d2912dda1cb6cdf4e369ec50d8..0470411dcd9f198af2fbafbccaf884b2fee13337 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1472,6 +1472,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -74,7 +74,7 @@ index d99cecc4075338d7b8f154ab94d8ac04190ba371..f4ba0dc132da65eb4d3f7e768eab2d73 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index f3b37f5704d752d1ec4d4d916690907dace67183..1cae524fe4248370f6f6967327cb4a463b5f19fc 100644 +index e51b6bd0698593867e6821326d223770766d717f..2f758b3d3eaf5d5781a2072d0f3f7442b73cb9a8 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -106,6 +106,15 @@ public class EntityTrackerEntry { diff --git a/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 45a1447f0..135970d33 100644 --- a/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0078-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -17,7 +17,7 @@ index 6fe5678cffc2487fe00c953d772f764bb37a4b11..bd0267ee4b3782f6d1ec39cba7966ba4 return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic(); } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 94050662ad3d74ec9f7c313a3ef075ec1670e961..2ada1b7f8f03b0bdf68486fed451d1d31c0c1376 100644 +index 0470411dcd9f198af2fbafbccaf884b2fee13337..da9c592332c8619a4adbd78d1871f3293968631c 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2138,8 +2138,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0083-Allow-color-codes-in-books.patch b/patches/server/0083-Allow-color-codes-in-books.patch index 9d89c0b19..f44f7e187 100644 --- a/patches/server/0083-Allow-color-codes-in-books.patch +++ b/patches/server/0083-Allow-color-codes-in-books.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index fd0c49173c0ae6324489f8152117c95aec8d43e8..32fe3cd1197716fb843f947e1a097af523b48266 100644 +index 1faaf6b7d3c45ad9445b0d6b3842a5ee24dc8275..367f1d93c81a688d93d874c6909bb61c60e99606 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -1058,7 +1058,8 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0084-Entity-lifespan.patch b/patches/server/0084-Entity-lifespan.patch index aa2bf81cd..66900e1c9 100644 --- a/patches/server/0084-Entity-lifespan.patch +++ b/patches/server/0084-Entity-lifespan.patch @@ -92,7 +92,7 @@ index 9807441d53fcf4ef7aaffe3801542f5a371eb7af..43cdeaae22bf020d0b3c1e1c56e65e73 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 32fe3cd1197716fb843f947e1a097af523b48266..7bc9cd04a3272179db89340a5a16d35ca8580c99 100644 +index 367f1d93c81a688d93d874c6909bb61c60e99606..9368578a136157496f6cc60f7f01c5d28eff115e 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2298,6 +2298,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 1bd8dc91a..aca8ff710 100644 --- a/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ba678ad67d1a48724738a71e1ff3b4e85b672f2c..67f33647cd66c32fcc6d91edd7f66684c0e6464f 100644 +index 8bc0fb58ef18ce7828451857a97460bbde567c6b..a8cd7f0abf58e69d276e469bd7d5ef6ae619263d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -281,6 +281,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0092-Totems-work-in-inventory.patch b/patches/server/0092-Totems-work-in-inventory.patch index 84abbbcbe..8b9f5ff2a 100644 --- a/patches/server/0092-Totems-work-in-inventory.patch +++ b/patches/server/0092-Totems-work-in-inventory.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 67f33647cd66c32fcc6d91edd7f66684c0e6464f..a7a5917fc7c6bbdecab26884cac361bcfb5b4178 100644 +index a8cd7f0abf58e69d276e469bd7d5ef6ae619263d..4b7ff69eac4dd5fd5c9b0b26d133daeb128c445d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -1328,6 +1328,19 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0101-Stop-squids-floating-on-top-of-water.patch b/patches/server/0101-Stop-squids-floating-on-top-of-water.patch index 859da8978..d86e9cd71 100644 --- a/patches/server/0101-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0101-Stop-squids-floating-on-top-of-water.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 2ada1b7f8f03b0bdf68486fed451d1d31c0c1376..efcdd07f92ff64b4ca6faa99a709f88e5bf8a4f9 100644 +index da9c592332c8619a4adbd78d1871f3293968631c..f0ce2fa068d9e442a8c0ad5d7e3a505e59556c89 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -3448,8 +3448,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0102-Ridables.patch b/patches/server/0102-Ridables.patch index 3bf04b3be..326a18e90 100644 --- a/patches/server/0102-Ridables.patch +++ b/patches/server/0102-Ridables.patch @@ -161,7 +161,7 @@ index bd0267ee4b3782f6d1ec39cba7966ba4f62f1adf..8b36ac2b0950a827763aa2357700f37e this.B = true; return this; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index efcdd07f92ff64b4ca6faa99a709f88e5bf8a4f9..9ca220f85089609921b1004c1244b0bc4b27b153 100644 +index f0ce2fa068d9e442a8c0ad5d7e3a505e59556c89..8360f5656b1e5928a3ab73c808e85475dcee9420 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -105,7 +105,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -1979,7 +1979,7 @@ index f958751b16abcc36910bb0b655ff2360459e2e4c..4ffc61acdff8c51dc9b111e3024c828f protected void eK() { this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue((double) this.fp()); diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 7604fd83de9cfe93d427a9a1f6bbbee76aa861e8..7958b69b2d4bee87ff5b38b8f724d248f41dff66 100644 +index 895c092197404ad4911ec9f94d1bda1322e45fa7..ff10f512dc6062638c15980b46be10f50d08478c 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -39,12 +39,27 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -2125,10 +2125,10 @@ index 0e98173607c810e0e74552a2ba8febf292357c39..559ba50977147b8e2a0e7c1e7dc281fa + protected void eV() { if (world.purpurConfig.zombieHorseCanSwim) goalSelector.a(0, new PathfinderGoalFloat(this)); } // Purpur } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 093df82d49bfa6c34f081a719b5212ec8a312657..e6e180ea46529e80eeab95f550dee5f3f8198ba8 100644 +index 10365180f518042d56929d0c0061e5297b73cf9b..9266a37f66337a6051c8472934e2e396e1131736 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -2136,4 +2136,15 @@ public abstract class EntityHuman extends EntityLiving { +@@ -2149,4 +2149,15 @@ public abstract class EntityHuman extends EntityLiving { return this.g; } } @@ -2354,7 +2354,7 @@ index bdff2368836dca230a6622a205d5772834afc6ee..9ee03b233b71d1b4b85a9a5e1f0ea9fe float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index a7a5917fc7c6bbdecab26884cac361bcfb5b4178..1cdc181bb5e756bddca01ea8f10d319e35309733 100644 +index 4b7ff69eac4dd5fd5c9b0b26d133daeb128c445d..af2b6bb559d78dd912eee02281f5446f31e55eae 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -463,7 +463,7 @@ public abstract class EntityLiving extends Entity { @@ -3019,7 +3019,7 @@ index bdfe073dcd255a7359127f9ae3a962642be5526d..c70281fddcbe5a97a1eb176def99cdf3 EntityPhantom.this.yaw += 180.0F; this.j = 0.1F; diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index 7f52c39234e69b612b89993ce4503c20690064ed..dade0bb29422ebd68fae0edb74cbbf6d3ab89d64 100644 +index 6ea3e4ffc3f42f4282adf3554944f24d92ca2079..bf7ecd7a7d805cc8f1314a348d7b13f848da46b5 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -19,9 +19,22 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable { @@ -3486,7 +3486,7 @@ index 25a9b7906be35e981566610c7d08aa8df5050d74..b766a27e98e19bffd3fe8f81f750750a this.d = flag; } diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java -index fd1ac7df68a0caebe35290cdf7a9c37519342b61..a9021458814d84a3a82088f91956db73562c3b10 100644 +index e78f158d9c682c60d42c17e0f171d492552e4079..9d0a462bfc56994ee35478cc9e565123620a9f08 100644 --- a/src/main/java/net/minecraft/server/EntityRavager.java +++ b/src/main/java/net/minecraft/server/EntityRavager.java @@ -20,14 +20,37 @@ public class EntityRavager extends EntityRaider { @@ -4469,7 +4469,7 @@ index ca3c5150bcfe2a92b49ad5a27c23dd37a7054fbb..323d79a99402b0f6952b4fb873170069 this.targetSelector.a(2, this.br); this.targetSelector.a(3, this.bs); diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 2e623ef9be036ea467e9e41817c2eced018f8f93..0715e070c727fc26064f6602e9bad3b2681a6081 100644 +index b1159f0258eca2bee52ec0939ba86792d24a1f99..f149eeb4dd2be51ef028998c0ec6398cb9b3f4bb 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java @@ -32,6 +32,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @@ -4602,9 +4602,9 @@ index 2e623ef9be036ea467e9e41817c2eced018f8f93..0715e070c727fc26064f6602e9bad3b2 this.goalSelector.a(7, new PathfinderGoalRandomLookaround(this)); + this.targetSelector.a(0, new PathfinderGoalHasRider(this)); // Purpur this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, new Class[0])); + if(this.world.paperConfig.fixWitherTargetingBug) this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, 0, false, false, null)); // Paper - Fix MC-29274 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 0, false, false, EntityWither.by)); - } -@@ -194,6 +302,16 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -195,6 +303,16 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @Override protected void mobTick() { @@ -4621,7 +4621,7 @@ index 2e623ef9be036ea467e9e41817c2eced018f8f93..0715e070c727fc26064f6602e9bad3b2 int i; if (this.getInvul() > 0) { -@@ -377,7 +495,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -378,7 +496,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { this.bossBattle.removePlayer(entityplayer); } @@ -4630,7 +4630,7 @@ index 2e623ef9be036ea467e9e41817c2eced018f8f93..0715e070c727fc26064f6602e9bad3b2 if (i <= 0) { return this.locX(); } else { -@@ -388,11 +506,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -389,11 +507,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } } @@ -4644,7 +4644,7 @@ index 2e623ef9be036ea467e9e41817c2eced018f8f93..0715e070c727fc26064f6602e9bad3b2 if (i <= 0) { return this.locZ(); } else { -@@ -516,7 +634,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -517,7 +635,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } public static AttributeProvider.Builder eK() { @@ -4653,7 +4653,7 @@ index 2e623ef9be036ea467e9e41817c2eced018f8f93..0715e070c727fc26064f6602e9bad3b2 } public int getInvul() { -@@ -528,11 +646,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -529,11 +647,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } public int getHeadTarget(int i) { @@ -4947,7 +4947,7 @@ index 0000000000000000000000000000000000000000..44929182dfd7ad847d9657c324f440cb + } +} diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 7bc9cd04a3272179db89340a5a16d35ca8580c99..23dc7bcdcccce2e3255e40ed5d1711045f7668eb 100644 +index 9368578a136157496f6cc60f7f01c5d28eff115e..bacb0e7c421a14a1dae57b7824c9d55ed0f39517 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2307,6 +2307,8 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -6372,10 +6372,10 @@ index 744e6351c58e5aa4a0c668f2ff1adb76a3dc0822..a3b810556e306bc2be65c7811cfa7806 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ee325757c79d3dc6db6bcc80c32a371e064ef24d..fefac469e4c8b803cd8e8c104103fad586ff2998 100644 +index 82e36ba35c0bd4d5b3e13281bad1a0664c25c6e0..c4d0082bb0d310ad16de36df03dd99225c5cadb0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -527,6 +527,18 @@ public class CraftEventFactory { +@@ -528,6 +528,18 @@ public class CraftEventFactory { } craftServer.getPluginManager().callEvent(event); @@ -6394,7 +6394,7 @@ index ee325757c79d3dc6db6bcc80c32a371e064ef24d..fefac469e4c8b803cd8e8c104103fad5 return event; } -@@ -927,6 +939,7 @@ public class CraftEventFactory { +@@ -928,6 +940,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions); @@ -6402,7 +6402,7 @@ index ee325757c79d3dc6db6bcc80c32a371e064ef24d..fefac469e4c8b803cd8e8c104103fad5 } event.setCancelled(cancelled); -@@ -1011,6 +1024,7 @@ public class CraftEventFactory { +@@ -1012,6 +1025,7 @@ public class CraftEventFactory { if (!event.isCancelled()) { event.getEntity().setLastDamageCause(event); } @@ -6410,7 +6410,7 @@ index ee325757c79d3dc6db6bcc80c32a371e064ef24d..fefac469e4c8b803cd8e8c104103fad5 return event; } -@@ -1060,6 +1074,7 @@ public class CraftEventFactory { +@@ -1061,6 +1075,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); diff --git a/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch index 8d9ccefa7..adca5d20f 100644 --- a/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Crying obsidian valid for portal frames diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index 1fc98698b81c079ebe4a524200232db1fe143bdf..d621b11ba9029a732a819e0558d6f8a439990dbe 100644 +index 47726a4394d1876d054c6f1c3f5408a81b623e69..d3026d8911c73e23315a545b9eb0753306c0e825 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -100,6 +100,7 @@ public class Block extends BlockBase implements IMaterial { diff --git a/patches/server/0105-Entities-can-use-portals-configuration.patch b/patches/server/0105-Entities-can-use-portals-configuration.patch index dc2fddc8a..35ee8df1f 100644 --- a/patches/server/0105-Entities-can-use-portals-configuration.patch +++ b/patches/server/0105-Entities-can-use-portals-configuration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 9ca220f85089609921b1004c1244b0bc4b27b153..7036160ce34ac0fbc15b4e228c40d0976763fe1c 100644 +index 8360f5656b1e5928a3ab73c808e85475dcee9420..eca3930b0a9df3e100c545727f897d011d32abb4 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2414,7 +2414,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0107-Customizable-wither-health-and-healing.patch b/patches/server/0107-Customizable-wither-health-and-healing.patch index d8b5d670f..72c9b787d 100644 --- a/patches/server/0107-Customizable-wither-health-and-healing.patch +++ b/patches/server/0107-Customizable-wither-health-and-healing.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 0715e070c727fc26064f6602e9bad3b2681a6081..6236627b29c5d4c9d2ea67bb3c3926cdb1e0b5ec 100644 +index f149eeb4dd2be51ef028998c0ec6398cb9b3f4bb..cc4b0945fb9186c6975136d48ce8dfc12b4d4230 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java @@ -150,6 +150,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @@ -21,7 +21,7 @@ index 0715e070c727fc26064f6602e9bad3b2681a6081..6236627b29c5d4c9d2ea67bb3c3926cd // Purpur end @Override -@@ -353,7 +358,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -354,7 +359,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { this.setInvul(i); if (this.ticksLived % 10 == 0) { @@ -30,7 +30,7 @@ index 0715e070c727fc26064f6602e9bad3b2681a6081..6236627b29c5d4c9d2ea67bb3c3926cd } } else { -@@ -462,8 +467,10 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -463,8 +468,10 @@ public class EntityWither extends EntityMonster implements IRangedEntity { } } diff --git a/patches/server/0112-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0112-Persistent-TileEntity-Lore-and-DisplayName.patch index 369b6b067..f764ad559 100644 --- a/patches/server/0112-Persistent-TileEntity-Lore-and-DisplayName.patch +++ b/patches/server/0112-Persistent-TileEntity-Lore-and-DisplayName.patch @@ -7,7 +7,7 @@ Makes it so that when a TileEntity is placed in the world and then broken, the dropped ItemStack retains any original custom display name/lore. diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index d621b11ba9029a732a819e0558d6f8a439990dbe..c276a2896ba73d86e7e18d656903b36d2970ac41 100644 +index d3026d8911c73e23315a545b9eb0753306c0e825..2c8d7024879392f37e53dfb72cc07971c7b4f27c 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -207,7 +207,7 @@ public class Block extends BlockBase implements IMaterial { diff --git a/patches/server/0119-Infinite-fuel-furnace.patch b/patches/server/0119-Infinite-fuel-furnace.patch index 26047db6b..8e4eb1106 100644 --- a/patches/server/0119-Infinite-fuel-furnace.patch +++ b/patches/server/0119-Infinite-fuel-furnace.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Infinite fuel furnace diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java -index e75e676d196d9f5a3409ec50645fab611b0afdad..76ea1d003b43d822e2b85eec3b8740155efd531a 100644 +index bc2fbdda5777b35291490a6eea038f429521a6ab..77a18faeef0fd2e086827535470c957198c60df4 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java @@ -278,6 +278,22 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I diff --git a/patches/server/0124-Make-entity-breeding-times-configurable.patch b/patches/server/0124-Make-entity-breeding-times-configurable.patch index 972220e1d..a90bac292 100644 --- a/patches/server/0124-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0124-Make-entity-breeding-times-configurable.patch @@ -316,7 +316,7 @@ index e402d4a77b57b8b12b7575a9793c30d7acfa7fb0..398e92bf7053c411bd98626efe4261e1 @Nullable diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index dade0bb29422ebd68fae0edb74cbbf6d3ab89d64..7172e8cabf5b715ae9a1087b0d11e6cee81ea6e4 100644 +index bf7ecd7a7d805cc8f1314a348d7b13f848da46b5..eae841eeac75a35a9dc5a53c57538ac5264ece68 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -29,6 +29,11 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable { diff --git a/patches/server/0125-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0125-Apply-display-names-from-item-forms-of-entities-to-e.patch index b31460e84..e23a64a77 100644 --- a/patches/server/0125-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0125-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -25,7 +25,7 @@ index 9e37bf25689691f9640b294c482978e8e3b6e627..759a8f95038778aead2f33a65a2d8f2d } diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java -index 603910a6f9ecc34be9eb2d4fb28e5c2e20aca90a..72d2eea40c37b5fa627c8deeda1802734e94f866 100644 +index 05c702bbdb8addea5c69faa0479609e8959945f1..fcb4936e78d56907b0e56d0aaf7f8361513d0a4e 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -155,7 +155,13 @@ public class EntityBoat extends Entity { diff --git a/patches/server/0126-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0126-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index d6fd12b91..e9c069961 100644 --- a/patches/server/0126-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0126-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Set name visible when using a Name Tag on an Armor Stand diff --git a/src/main/java/net/minecraft/server/ItemNameTag.java b/src/main/java/net/minecraft/server/ItemNameTag.java -index 01163ce38602f9345f00ee0535b4e73be7c6d735..a7efce97318fcf95d98f33ad4ac2da69a1ba0df0 100644 +index a34772e329df62d9176b0aa392197e2771c69da4..facaca3622e028e315b822a61ed40ba518de2720 100644 --- a/src/main/java/net/minecraft/server/ItemNameTag.java +++ b/src/main/java/net/minecraft/server/ItemNameTag.java -@@ -11,6 +11,11 @@ public class ItemNameTag extends Item { - if (itemstack.hasName() && !(entityliving instanceof EntityHuman)) { - if (!entityhuman.world.isClientSide && entityliving.isAlive()) { - entityliving.setCustomName(itemstack.getName()); +@@ -20,6 +20,11 @@ public class ItemNameTag extends Item { + if (!event.callEvent()) return EnumInteractionResult.PASS; + EntityLiving newEntityLiving = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getEntity()).getHandle(); + newEntityLiving.setCustomName(event.getName() != null ? PaperAdventure.asVanilla(event.getName()) : null); + // Purpur start + if (entityhuman.world.purpurConfig.armorstandFixNametags && entityliving instanceof EntityArmorStand) { + entityliving.setCustomNameVisible(true); + } + // Purpur end - if (entityliving instanceof EntityInsentient) { - ((EntityInsentient) entityliving).setPersistent(); + if (event.isPersistent() && newEntityLiving instanceof EntityInsentient) { + ((EntityInsentient) newEntityLiving).setPersistent(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 7915a0204597a3711c1f177cf504a1c3c603e91e..9a419e2e591113015bd122202aba2a8aa8494f63 100644 diff --git a/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index 07099e28e..f86b279be 100644 --- a/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add critical hit check to EntityDamagedByEntityEvent diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index e6e180ea46529e80eeab95f550dee5f3f8198ba8..b6bfd8f5073ce481dfe2b1667ece42d32eaeb227 100644 +index 9266a37f66337a6051c8472934e2e396e1131736..4e55f64f8da344bdd5fe142f87cc6ea129bdeabe 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -71,6 +71,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -73,6 +73,7 @@ public abstract class EntityHuman extends EntityLiving { // Paper start public boolean affectsSpawning = true; // Paper end @@ -16,7 +16,7 @@ index e6e180ea46529e80eeab95f550dee5f3f8198ba8..b6bfd8f5073ce481dfe2b1667ece42d3 // CraftBukkit start public boolean fauxSleeping; -@@ -1058,6 +1059,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1060,6 +1061,7 @@ public abstract class EntityHuman extends EntityLiving { flag2 = flag2 && !world.paperConfig.disablePlayerCrits; // Paper flag2 = flag2 && !this.isSprinting(); if (flag2) { @@ -24,7 +24,7 @@ index e6e180ea46529e80eeab95f550dee5f3f8198ba8..b6bfd8f5073ce481dfe2b1667ece42d3 f *= 1.5F; } -@@ -1094,6 +1096,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1096,6 +1098,7 @@ public abstract class EntityHuman extends EntityLiving { Vec3D vec3d = entity.getMot(); boolean flag5 = entity.damageEntity(DamageSource.playerAttack(this), f); @@ -33,10 +33,10 @@ index e6e180ea46529e80eeab95f550dee5f3f8198ba8..b6bfd8f5073ce481dfe2b1667ece42d3 if (flag5) { if (i > 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index fefac469e4c8b803cd8e8c104103fad586ff2998..8f5ca21a9d0e198aade8b7bc0d7990f444c81ffd 100644 +index c4d0082bb0d310ad16de36df03dd99225c5cadb0..22aaa4efd0f5e89f66abf6a9054b595f52e7129b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1073,7 +1073,7 @@ public class CraftEventFactory { +@@ -1074,7 +1074,7 @@ public class CraftEventFactory { private static EntityDamageEvent callEntityDamageEvent(Entity damager, Entity damagee, DamageCause cause, Map modifiers, Map> modifierFunctions, boolean cancelled) { EntityDamageEvent event; if (damager != null) { diff --git a/patches/server/0140-PaperPR-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0140-PaperPR-Config-option-for-Piglins-guarding-chests.patch index bfb117c8a..81f48e8cb 100644 --- a/patches/server/0140-PaperPR-Config-option-for-Piglins-guarding-chests.patch +++ b/patches/server/0140-PaperPR-Config-option-for-Piglins-guarding-chests.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PaperPR - Config option for Piglins guarding chests diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 0776e68340b0510cc99084bea80791d562dfea40..39f297a968f3ff31119cefcc629ec459f263d426 100644 +index b473709774fbbd502d5e04c98041ae7c829b4083..a8215289c2be60c0e1301b928bc4f8a89f3aa1a6 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -704,6 +704,11 @@ public class PaperWorldConfig { diff --git a/patches/server/0143-Lobotomize-stuck-villagers.patch b/patches/server/0143-Lobotomize-stuck-villagers.patch index eed43e6be..b598f374d 100644 --- a/patches/server/0143-Lobotomize-stuck-villagers.patch +++ b/patches/server/0143-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7036160ce34ac0fbc15b4e228c40d0976763fe1c..6450d218274d2df201368466a501fdf34743df2b 100644 +index eca3930b0a9df3e100c545727f897d011d32abb4..fd2becb531ec8bd1cb2125f75a2f3a21cf352adb 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -114,7 +114,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch b/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch index 6b4f43365..635626e7f 100644 --- a/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 8e25ecc687a9e222a7acba8f4ee12312dd9c0c52..da1cf9eecbe0bcd7e31153589765c0238ac23742 100644 +index 3501c42e11a5b1f690bcbf26bcea4ebbfbba1cb1..48b4e6dce27448bf4c83d5339cd35c24c5485df5 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -73,7 +73,7 @@ public abstract class PlayerList { @@ -17,7 +17,7 @@ index 8e25ecc687a9e222a7acba8f4ee12312dd9c0c52..da1cf9eecbe0bcd7e31153589765c023 // CraftBukkit start private CraftServer cserver; -@@ -932,22 +932,23 @@ public abstract class PlayerList { +@@ -933,22 +933,23 @@ public abstract class PlayerList { } public void tick() { @@ -56,10 +56,10 @@ index 8e25ecc687a9e222a7acba8f4ee12312dd9c0c52..da1cf9eecbe0bcd7e31153589765c023 public void sendAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bb954462b5443ca93d833d460cbd1d0cb6292309..0a8c22f6d798a137b32fe2d59c891449013811b6 100644 +index 2b25e58ce0d5b6d54c65e70cffd46e1085b02275..86d10c342a741e85e434b65ae172bbdf5284d23b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1465,7 +1465,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1435,7 +1435,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(Player player) { diff --git a/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch index 2da19934a..9097da803 100644 --- a/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid. Rabid wolves attack all players, mobs, and animals. diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 1cdc181bb5e756bddca01ea8f10d319e35309733..0aebf35a5b631417d32572cd90bf59b5568ade60 100644 +index af2b6bb559d78dd912eee02281f5446f31e55eae..79fde7b4763642dc4941899ab186db9dfab3b574 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2102,6 +2102,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0149-Configurable-entity-base-attributes.patch b/patches/server/0149-Configurable-entity-base-attributes.patch index 97ca72a24..9895d8676 100644 --- a/patches/server/0149-Configurable-entity-base-attributes.patch +++ b/patches/server/0149-Configurable-entity-base-attributes.patch @@ -358,7 +358,7 @@ index 669bce5d9806c80bddc247fe103ff20dc6aaa8a5..e78e89d187f923239f23e37d5141e2e6 @Override diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 7958b69b2d4bee87ff5b38b8f724d248f41dff66..645431cccc8f852fd87f2b3095fd4b19bc480345 100644 +index ff10f512dc6062638c15980b46be10f50d08478c..6cdaf21f5c9fed819f99cda0b06d92504b310805 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -55,6 +55,32 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -713,7 +713,7 @@ index c70281fddcbe5a97a1eb176def99cdf31de37579..80cc4467d601b653583e387eb4be6f3b @Override diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index 7172e8cabf5b715ae9a1087b0d11e6cee81ea6e4..61ea94586ec60dae8e7b32d91403fe93f81fc246 100644 +index eae841eeac75a35a9dc5a53c57538ac5264ece68..9cf07531c674402e3ecc87229638578989340a13 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -34,6 +34,11 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable { @@ -854,7 +854,7 @@ index 654cd036a8e4aa4499f10f528b684e003c469c9a..75f42e91449de71e154e2169ea986ff0 // CraftBukkit start - code from constructor diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java -index a9021458814d84a3a82088f91956db73562c3b10..9e21603cb1681cc702084fdeebb6f93754d87bc8 100644 +index 9d0a462bfc56994ee35478cc9e565123620a9f08..820938c76e787fac6c65eb000491232d5b749dee 100644 --- a/src/main/java/net/minecraft/server/EntityRavager.java +++ b/src/main/java/net/minecraft/server/EntityRavager.java @@ -39,6 +39,11 @@ public class EntityRavager extends EntityRaider { diff --git a/patches/server/0152-Implement-TPSBar.patch b/patches/server/0152-Implement-TPSBar.patch index 05a26e84f..544106553 100644 --- a/patches/server/0152-Implement-TPSBar.patch +++ b/patches/server/0152-Implement-TPSBar.patch @@ -37,10 +37,10 @@ index cd01859f3fe24d2eb9554e663c1a092038e93f02..e620d3596fdc2ca64485b451513bfae4 this.isRestarting = isRestarting; this.hasLoggedStop = true; // Paper diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index da1cf9eecbe0bcd7e31153589765c0238ac23742..45a9df893a5dc91567f80fd712e81f221a245d00 100644 +index 48b4e6dce27448bf4c83d5339cd35c24c5485df5..cbe97122885cd89e87b65005d00c5a0b3eb83bfe 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -517,6 +517,8 @@ public abstract class PlayerList { +@@ -518,6 +518,8 @@ public abstract class PlayerList { if (entityplayer.didPlayerJoinEvent) cserver.getPluginManager().callEvent(playerQuitEvent); // Paper - if we disconnected before join ever fired, don't fire quit entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); diff --git a/patches/server/0154-PlayerBookTooLargeEvent.patch b/patches/server/0154-PlayerBookTooLargeEvent.patch index 11119719a..037ac254c 100644 --- a/patches/server/0154-PlayerBookTooLargeEvent.patch +++ b/patches/server/0154-PlayerBookTooLargeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 23dc7bcdcccce2e3255e40ed5d1711045f7668eb..26f719608cc973f1c2c0fc85b0e35f34a5aa086c 100644 +index bacb0e7c421a14a1dae57b7824c9d55ed0f39517..c5d130d96b53f9d86145a8f587ae8fc8de963330 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -970,6 +970,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0155-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0155-Full-netherite-armor-grants-fire-resistance.patch index 1cf46b4a1..f56f1e9c7 100644 --- a/patches/server/0155-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0155-Full-netherite-armor-grants-fire-resistance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index b6bfd8f5073ce481dfe2b1667ece42d32eaeb227..81f7d5bc581b42289a79121da15868999ab9feef 100644 +index 4e55f64f8da344bdd5fe142f87cc6ea129bdeabe..c2e0f449400d7477be6310c8d59efe21a517afb3 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -234,6 +234,16 @@ public abstract class EntityHuman extends EntityLiving { +@@ -236,6 +236,16 @@ public abstract class EntityHuman extends EntityLiving { this.addEffect(new MobEffect(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit } diff --git a/patches/server/0158-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0158-Add-mobGriefing-bypass-to-everything-affected.patch index c18d19599..abdb1f9ff 100644 --- a/patches/server/0158-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0158-Add-mobGriefing-bypass-to-everything-affected.patch @@ -146,7 +146,7 @@ index d12de20cf4bb2345c616d3cc0b9f50bddb5135ee..3f3be1b2ded6ad118ae7860c1231c7af // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 0aebf35a5b631417d32572cd90bf59b5568ade60..330f27f649a2ab1567ebc1b547f1f2a5ce645055 100644 +index 79fde7b4763642dc4941899ab186db9dfab3b574..38f94d4983b69e265441a2b8365702df57a881f5 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -1473,7 +1473,7 @@ public abstract class EntityLiving extends Entity { @@ -185,7 +185,7 @@ index ad2a2c27f0ef064064ded28cc049a6856d476808..e07f224289a937689a26d58639899abb if (this.b.fb() && !this.b.fa().a() && this.b.eN() && !ItemStack.matches(this.b.getEquipment(EnumItemSlot.HEAD), Raid.s())) { diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java -index 9e21603cb1681cc702084fdeebb6f93754d87bc8..f9df1389189962ce08e50647baffd9eecb00968a 100644 +index 820938c76e787fac6c65eb000491232d5b749dee..3606440e41ab3193fadebb455c0967dbc0ccbb63 100644 --- a/src/main/java/net/minecraft/server/EntityRavager.java +++ b/src/main/java/net/minecraft/server/EntityRavager.java @@ -137,7 +137,7 @@ public class EntityRavager extends EntityRaider { @@ -246,10 +246,10 @@ index fa0c459dcd773e003a2852c594ec7254e4eb11b8..88eeabeb89fe733c462a667d7564da3b } diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 6236627b29c5d4c9d2ea67bb3c3926cdb1e0b5ec..014de51f9b803cda27e735d30cde5c869947a31b 100644 +index cc4b0945fb9186c6975136d48ce8dfc12b4d4230..0b6cb7c3c55f4b0951fde643a898bd67a08e08af 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java -@@ -322,7 +322,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -323,7 +323,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { if (this.getInvul() > 0) { i = this.getInvul() - 1; if (i <= 0) { @@ -258,7 +258,7 @@ index 6236627b29c5d4c9d2ea67bb3c3926cdb1e0b5ec..014de51f9b803cda27e735d30cde5c86 // CraftBukkit start // this.world.createExplosion(this, this.locX(), this.getHeadY(), this.locZ(), 7.0F, false, explosion_effect); ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), 7.0F, false); -@@ -434,7 +434,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -435,7 +435,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { if (this.bw > 0) { --this.bw; diff --git a/patches/server/0160-Add-EntityTeleportHinderedEvent.patch b/patches/server/0160-Add-EntityTeleportHinderedEvent.patch index 8cd3c64d7..d3ccb9f2e 100644 --- a/patches/server/0160-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0160-Add-EntityTeleportHinderedEvent.patch @@ -123,7 +123,7 @@ index a3b810556e306bc2be65c7811cfa7806d5752cfa..f96c41fc8788ee7b674c18cc0fa692df } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0a8c22f6d798a137b32fe2d59c891449013811b6..3299f0429c386a19400cfec90dd588384dbbb696 100644 +index 86d10c342a741e85e434b65ae172bbdf5284d23b..2d7ce3379ececfca49ae0f535206e11cc346bb41 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -117,6 +117,7 @@ import org.bukkit.entity.EntityType; diff --git a/patches/server/0163-Movement-options-for-armour-stands.patch b/patches/server/0163-Movement-options-for-armour-stands.patch index f46deec83..be51b9d6f 100644 --- a/patches/server/0163-Movement-options-for-armour-stands.patch +++ b/patches/server/0163-Movement-options-for-armour-stands.patch @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 6450d218274d2df201368466a501fdf34743df2b..6841e140e8c03f6520da536da57ae0618635ebfd 100644 +index fd2becb531ec8bd1cb2125f75a2f3a21cf352adb..68e019869c3a5907a63cbed59958b25a028d349e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1360,7 +1360,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0164-Fix-stuck-in-portals.patch b/patches/server/0164-Fix-stuck-in-portals.patch index 73f19bcf9..2cec7e90f 100644 --- a/patches/server/0164-Fix-stuck-in-portals.patch +++ b/patches/server/0164-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 6841e140e8c03f6520da536da57ae0618635ebfd..e5260633de3a6ffd8236c5baecddc612821c8910 100644 +index 68e019869c3a5907a63cbed59958b25a028d349e..9718812a3b5b4fe68c55390a52f7686cd78e44cd 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2411,12 +2411,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0165-Fix-PlayerEditBookEvent-not-saving-new-book.patch b/patches/server/0165-Fix-PlayerEditBookEvent-not-saving-new-book.patch index 84ecb09be..c19debdb8 100644 --- a/patches/server/0165-Fix-PlayerEditBookEvent-not-saving-new-book.patch +++ b/patches/server/0165-Fix-PlayerEditBookEvent-not-saving-new-book.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerEditBookEvent not saving new book diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 26f719608cc973f1c2c0fc85b0e35f34a5aa086c..54615632b49097587f20b9bb7454ec2e2e371994 100644 +index c5d130d96b53f9d86145a8f587ae8fc8de963330..9f93e2f5aed24ad0c13076fc6b2087d988bd0f01 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -1065,7 +1065,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch index 7c75f4ac4..30d5a651c 100644 --- a/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0167-Toggle-for-water-sensitive-mob-damage.patch @@ -45,7 +45,7 @@ index 70982f55becd9417e0d3d3b827edc63eac232ecf..9040a445433307e4611e815370f48198 } return; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 330f27f649a2ab1567ebc1b547f1f2a5ce645055..5f9d8999ae7a1d742918e58c0f1bb36fc74d45fe 100644 +index 38f94d4983b69e265441a2b8365702df57a881f5..50fa5f8395fea3ba6fa202a5a38519cd55ae00e0 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2876,6 +2876,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0168-Config-to-always-tame-in-Creative.patch b/patches/server/0168-Config-to-always-tame-in-Creative.patch index bcd4e1ef8..33b69cd4b 100644 --- a/patches/server/0168-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0168-Config-to-always-tame-in-Creative.patch @@ -46,7 +46,7 @@ index 03bcbf7c280476ef0e6fe87e3a96edb75544bddb..5bf2a3205671a7cb001835ab241c34bc this.navigation.o(); this.setGoalTarget((EntityLiving) null); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalTame.java b/src/main/java/net/minecraft/server/PathfinderGoalTame.java -index fc831dc26eaeab802d5fee456d5c662fe3f8bdfd..76dda6f777fbdf515990651594b5b3fa57cc1f66 100644 +index 8757c6487a433b1fa5c46b50c559aeca82f84b8d..b841f87f9d6b7c9c67e2497607cbd927909c3ddc 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalTame.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalTame.java @@ -58,7 +58,7 @@ public class PathfinderGoalTame extends PathfinderGoal { diff --git a/patches/server/0170-Add-unsafe-Entity-serialization-API.patch b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch index a20c6d456..9d114ecf8 100644 --- a/patches/server/0170-Add-unsafe-Entity-serialization-API.patch +++ b/patches/server/0170-Add-unsafe-Entity-serialization-API.patch @@ -46,7 +46,7 @@ index f96c41fc8788ee7b674c18cc0fa692df9cee1939..63a419b4eed399a50ba9dde515c1c13d // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 37c561fb775cf7dd955b185b4ea94fecc574be63..821b8665b4ed70c010a0824df99de2667fd4c8ba 100644 +index a9c188c42c63d6e073bae3c77f1dacd2c3fc4602..a73ed438df34d494242f680e08110f4b9eba01c6 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -383,9 +383,14 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -126,4 +126,4 @@ index 37c561fb775cf7dd955b185b4ea94fecc574be63..821b8665b4ed70c010a0824df99de266 + @Override public String getTranslationKey(Material mat) { - return getItem(mat).getOrCreateDescriptionId(); + if (mat.isBlock()) { diff --git a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 82f5fb15e..c2725b015 100644 --- a/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0172-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index e5260633de3a6ffd8236c5baecddc612821c8910..e0a508a596eaf4438a84c81f8e684e840cb076fe 100644 +index 9718812a3b5b4fe68c55390a52f7686cd78e44cd..a96b74b99cac14ef83066bafc514d2ff40dc8b4e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2261,7 +2261,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -30,10 +30,10 @@ index 8a69e157572d799ce3760d55550cf0c2035da609..76bd201ebb03782c5cf45393269398c4 } diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 014de51f9b803cda27e735d30cde5c869947a31b..aee6891c92c9a2c558b9c96ed544be0a54050e25 100644 +index 0b6cb7c3c55f4b0951fde643a898bd67a08e08af..b6663cd71e2e0ec0c4dd27095160298f081c4ec5 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java -@@ -672,6 +672,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { +@@ -673,6 +673,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @Override protected boolean n(Entity entity) {