From a4226a18915e2fabfe65a6819869a9764430e4ce Mon Sep 17 00:00:00 2001 From: Cryptite Date: Fri, 30 Dec 2022 15:15:54 -0600 Subject: [PATCH] 1.19.3 work --- ...04-Add-provided-Material-to-getDrops.patch | 4 +- patches/api/0010-Smooth-Teleports.patch | 4 +- .../api/0011-Equipment-Packet-Caching.patch | 4 +- patches/api/0012-AntiXray-Bypass.patch | 4 +- patches/server/0001-Build-Changes.patch | 12 +-- .../0002-Add-PlayerShieldDisableEvent.patch | 12 +-- ...-Set-BlockData-without-light-updates.patch | 32 +++---- ...-durability-change-equipment-updates.patch | 39 +++++++- ...t-send-fire-packets-if-player-has-FR.patch | 4 +- ...7-Add-provided-Material-to-getDrops.patch} | 6 +- ...008-Add-Player-to-SpongeAbsorbEvent.patch} | 0 ...tch => 0009-Add-World-Instance-flag.patch} | 8 +- ...10-Packet-obfuscation-and-reduction.patch} | 91 ++++++++----------- ... 0011-Add-player-data-saving-events.patch} | 8 +- ...2-Add-PlayerGetRespawnLocationEvent.patch} | 4 +- ...-Set-multiple-Team-settings-at-once.patch} | 0 .../0014-Disable-Azalea-generation.patch | 32 ------- ...orts.patch => 0014-Smooth-Teleports.patch} | 24 ++--- ...=> 0015-Allow-access-to-LightEngine.patch} | 4 +- ...tch => 0016-Unfreeze-MappedRegistry.patch} | 14 +-- ...ch => 0017-Equipment-Packet-Caching.patch} | 35 ++----- ...ypass.patch => 0018-AntiXray-Bypass.patch} | 10 +- ...tch => 0019-PlayerPreChunkLoadEvent.patch} | 4 +- ...=> 0020-Shared-DataStorage-for-maps.patch} | 16 ++-- ...TTON-nutrition-equal-to-COOKED_BEEF.patch} | 0 ...yer-specific-target-chunk-send-rate.patch} | 12 +-- ...3-Add-BlockDestroyedByNeighborEvent.patch} | 39 +++++--- .../0024-noEntityCollisions-for-Entity.patch | 31 +++++++ 28 files changed, 230 insertions(+), 223 deletions(-) rename patches/server/{0008-Add-provided-Material-to-getDrops.patch => 0007-Add-provided-Material-to-getDrops.patch} (85%) rename patches/server/{0009-Add-Player-to-SpongeAbsorbEvent.patch => 0008-Add-Player-to-SpongeAbsorbEvent.patch} (100%) rename patches/server/{0010-Add-World-Instance-flag.patch => 0009-Add-World-Instance-flag.patch} (84%) rename patches/server/{0011-Packet-obfuscation-and-reduction.patch => 0010-Packet-obfuscation-and-reduction.patch} (63%) rename patches/server/{0012-Add-player-data-saving-events.patch => 0011-Add-player-data-saving-events.patch} (95%) rename patches/server/{0013-Add-PlayerGetRespawnLocationEvent.patch => 0012-Add-PlayerGetRespawnLocationEvent.patch} (97%) rename patches/server/{0015-Set-multiple-Team-settings-at-once.patch => 0013-Set-multiple-Team-settings-at-once.patch} (100%) delete mode 100644 patches/server/0014-Disable-Azalea-generation.patch rename patches/server/{0016-Smooth-Teleports.patch => 0014-Smooth-Teleports.patch} (82%) rename patches/server/{0017-Allow-access-to-LightEngine.patch => 0015-Allow-access-to-LightEngine.patch} (86%) rename patches/server/{0018-Unfreeze-MappedRegistry.patch => 0016-Unfreeze-MappedRegistry.patch} (53%) rename patches/server/{0019-Equipment-Packet-Caching.patch => 0017-Equipment-Packet-Caching.patch} (86%) rename patches/server/{0020-AntiXray-Bypass.patch => 0018-AntiXray-Bypass.patch} (83%) rename patches/server/{0021-PlayerPreChunkLoadEvent.patch => 0019-PlayerPreChunkLoadEvent.patch} (94%) rename patches/server/{0022-Shared-DataStorage-for-maps.patch => 0020-Shared-DataStorage-for-maps.patch} (89%) rename patches/server/{0023-Set-COOKED_MUTTON-nutrition-equal-to-COOKED_BEEF.patch => 0021-Set-COOKED_MUTTON-nutrition-equal-to-COOKED_BEEF.patch} (100%) rename patches/server/{0024-Player-specific-target-chunk-send-rate.patch => 0022-Player-specific-target-chunk-send-rate.patch} (86%) rename patches/server/{0007-Add-BlockDestroyedByNeighborEvent.patch => 0023-Add-BlockDestroyedByNeighborEvent.patch} (81%) create mode 100644 patches/server/0024-noEntityCollisions-for-Entity.patch diff --git a/patches/api/0004-Add-provided-Material-to-getDrops.patch b/patches/api/0004-Add-provided-Material-to-getDrops.patch index 6f0819f52..311157205 100644 --- a/patches/api/0004-Add-provided-Material-to-getDrops.patch +++ b/patches/api/0004-Add-provided-Material-to-getDrops.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add provided Material to getDrops diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index ed65bb8867bc2b8e67726dee07a82ac3671b0306..3da43fba552b1cb16b9a5480c46a5d0ea0f9c087 100644 +index 814bad7830fd0ceb741a4b31685dd2576a0a57c2..1e0e90b64f39125c82d87bab970afbd90072944d 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -639,6 +639,20 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -665,6 +665,20 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran @NotNull Collection getDrops(@NotNull ItemStack tool, @Nullable Entity entity); diff --git a/patches/api/0010-Smooth-Teleports.patch b/patches/api/0010-Smooth-Teleports.patch index f0219ea0c..316ad4f5f 100644 --- a/patches/api/0010-Smooth-Teleports.patch +++ b/patches/api/0010-Smooth-Teleports.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Smooth Teleports diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1e27b9de47f111b9c000243214e22890e323f7fc..39c65831f38b3992c52f35abcc4aab1d2e09473c 100644 +index de960716478477ce199526b8f860cfafa1541ee9..adddf2c924e9fb3650b88c8ea64644f26bd533da 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2763,6 +2763,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2780,6 +2780,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/api/0011-Equipment-Packet-Caching.patch b/patches/api/0011-Equipment-Packet-Caching.patch index fadd39aca..c0bd72a1e 100644 --- a/patches/api/0011-Equipment-Packet-Caching.patch +++ b/patches/api/0011-Equipment-Packet-Caching.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Equipment Packet Caching diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 97336be470a9d545d93f78e683a793f328013ad8..d57ff4b918e3c6e97b2d0664394c7faf46aa3b00 100644 +index ead90b002034c463983af948a4fb882109b8d3a2..aa58f8c94e967465e79f85f08b45b86e1bce7803 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java -@@ -1059,4 +1059,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource +@@ -1107,4 +1107,11 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void damageItemStack(org.bukkit.inventory.@NotNull EquipmentSlot slot, int amount); // Paper end diff --git a/patches/api/0012-AntiXray-Bypass.patch b/patches/api/0012-AntiXray-Bypass.patch index ea3e893cb..73bc946b1 100644 --- a/patches/api/0012-AntiXray-Bypass.patch +++ b/patches/api/0012-AntiXray-Bypass.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AntiXray Bypass diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 39c65831f38b3992c52f35abcc4aab1d2e09473c..8c101c66b2c8d7044d29474e37c10838ee3e5d0c 100644 +index adddf2c924e9fb3650b88c8ea64644f26bd533da..78f9ae7f6a8c625cb66e3b241adfdec25d5b2497 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2543,6 +2543,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2560,6 +2560,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ boolean hasResourcePack(); diff --git a/patches/server/0001-Build-Changes.patch b/patches/server/0001-Build-Changes.patch index 650c07446..acd64d926 100644 --- a/patches/server/0001-Build-Changes.patch +++ b/patches/server/0001-Build-Changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build Changes diff --git a/build.gradle.kts b/build.gradle.kts -index b0e4f11e8af4b909a56bb5576d05ef0537fb25f7..c4dde3980605eff079e9a6b0a97f73eadb2fc89b 100644 +index d5d49bb2b47c889e12d17dc87b8c439a60b3fe67..7c6c8d46a322d5a7406e68fb3288591661e6bf55 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,8 +7,12 @@ plugins { @@ -23,7 +23,7 @@ index b0e4f11e8af4b909a56bb5576d05ef0537fb25f7..c4dde3980605eff079e9a6b0a97f73ea // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -62,7 +66,7 @@ tasks.jar { +@@ -61,7 +65,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -32,7 +32,7 @@ index b0e4f11e8af4b909a56bb5576d05ef0537fb25f7..c4dde3980605eff079e9a6b0a97f73ea "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -134,7 +138,7 @@ fun TaskContainer.registerRunTask( +@@ -133,7 +137,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -42,7 +42,7 @@ index b0e4f11e8af4b909a56bb5576d05ef0537fb25f7..c4dde3980605eff079e9a6b0a97f73ea standardInput = System.`in` workingDir = rootProject.layout.projectDirectory diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6dc6c3bccb4ba34268a87b0754c87eb1e0df4135..82a15bfd47552b9af6d761279ae75f820f26675b 100644 +index 710ca7d3a5659953f64bc6dccdd93b43300961cc..6f11e51dd4626c079d67a6fb5359e0736946629a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1654,7 +1654,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getDrops(ItemStack item, Entity entity) { @@ -28,7 +28,7 @@ index 4d49cc4ceba781bc24ac9b4229483625a996839d..1d22923bfd3be24a6f637114613065ae net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item); // Modelled off EntityHuman#hasBlock -@@ -603,6 +614,7 @@ public class CraftBlock implements Block { +@@ -627,6 +638,7 @@ public class CraftBlock implements Block { return Collections.emptyList(); } } diff --git a/patches/server/0009-Add-Player-to-SpongeAbsorbEvent.patch b/patches/server/0008-Add-Player-to-SpongeAbsorbEvent.patch similarity index 100% rename from patches/server/0009-Add-Player-to-SpongeAbsorbEvent.patch rename to patches/server/0008-Add-Player-to-SpongeAbsorbEvent.patch diff --git a/patches/server/0010-Add-World-Instance-flag.patch b/patches/server/0009-Add-World-Instance-flag.patch similarity index 84% rename from patches/server/0010-Add-World-Instance-flag.patch rename to patches/server/0009-Add-World-Instance-flag.patch index 909538450..61b76d1af 100644 --- a/patches/server/0010-Add-World-Instance-flag.patch +++ b/patches/server/0009-Add-World-Instance-flag.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add World Instance flag diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a8cdb261c0f8c9a377bb4a6d39afbe5ef6f0d146..571753395ecfe82e3c95ad7f322981991ab0c94d 100644 +index 54c2b7fba83d6f06dba95b1bb5b487a02048d6e6..274a8deb22d0d6d07d1e6278935000756ae37ac5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -219,6 +219,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper public boolean hasEntityMoveEvent = false; // Paper @@ -17,10 +17,10 @@ index a8cdb261c0f8c9a377bb4a6d39afbe5ef6f0d146..571753395ecfe82e3c95ad7f32298199 public static Throwable getAddToWorldStackTrace(Entity entity) { final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 55d83a9a691d11c9408d2c3260c3e77dfb51b97e..6d92d1e1301555dd77968e9f1d7347497200dd63 100644 +index f8d321e925bf2708e51590542325c1bdc67d5964..0c8ec5c60d123e1fc7984dc45ba2df16612314b3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1267,6 +1267,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1266,6 +1266,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { world.noSave = !value; } diff --git a/patches/server/0011-Packet-obfuscation-and-reduction.patch b/patches/server/0010-Packet-obfuscation-and-reduction.patch similarity index 63% rename from patches/server/0011-Packet-obfuscation-and-reduction.patch rename to patches/server/0010-Packet-obfuscation-and-reduction.patch index 396cadc49..d40a3d050 100644 --- a/patches/server/0011-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0010-Packet-obfuscation-and-reduction.patch @@ -4,29 +4,11 @@ Date: Fri, 12 Aug 2022 10:48:03 -0500 Subject: [PATCH] Packet obfuscation and reduction -diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java -index bf838c097aeb79fbe82c0b6cdf3315acf03474cd..88c488cc9bcbfdec50654a8d67ebbd65b325cedf 100644 ---- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java -+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java -@@ -27,6 +27,13 @@ public class ClientboundSetEntityDataPacket implements Packet> packedItems) { -+ this.id = id; -+ this.packedItems = packedItems; -+ } -+ // Slice end -+ - public ClientboundSetEntityDataPacket(FriendlyByteBuf buf) { - this.id = buf.readVarInt(); - this.packedItems = SynchedEntityData.unpack(buf); diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -index a376fc453986b66560f57076f0a72dcae9d427c2..2f28c2a8f99732c1791283429730b5d2fd3c1d4f 100644 +index 37e193f57938047c8b886ed7d2816411392f94b4..e37c72e90e53908cb2f529265df54c22a692219a 100644 --- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java +++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -@@ -137,6 +137,11 @@ public class SynchedEntityData { +@@ -135,6 +135,11 @@ public class SynchedEntityData { } public void set(EntityDataAccessor key, T value) { @@ -38,7 +20,7 @@ index a376fc453986b66560f57076f0a72dcae9d427c2..2f28c2a8f99732c1791283429730b5d2 SynchedEntityData.DataItem datawatcher_item = this.getItem(key); if (ObjectUtils.notEqual(value, datawatcher_item.getValue())) { -@@ -146,6 +151,11 @@ public class SynchedEntityData { +@@ -144,6 +149,11 @@ public class SynchedEntityData { this.isDirty = true; } @@ -50,25 +32,22 @@ index a376fc453986b66560f57076f0a72dcae9d427c2..2f28c2a8f99732c1791283429730b5d2 } // CraftBukkit start - add method from above -@@ -201,6 +211,28 @@ public class SynchedEntityData { +@@ -185,6 +195,25 @@ public class SynchedEntityData { return list; } + // Slice start + @Nullable -+ public List> packForeignDirty(List> unpackedData) { -+ List> list = null; -+ -+ for (DataItem dataItem : unpackedData) { -+ DataItem item = itemsById.get(dataItem.accessor.getId()); -+ if (item.isDirty(true)) { -+ item.setForeignDirty(false); -+ ++ public List> packForeignDirty() { ++ List> list = null; ++ for (DataItem dataItem : this.itemsById.values()) { ++ if (dataItem.isDirty(true)) { ++ dataItem.setForeignDirty(false); + if (list == null) { -+ list = Lists.newArrayList(); ++ list = new ArrayList(); + } + -+ list.add(item.copy(true)); ++ list.add(dataItem.value()); + } + } + @@ -77,26 +56,26 @@ index a376fc453986b66560f57076f0a72dcae9d427c2..2f28c2a8f99732c1791283429730b5d2 + // Slice end + @Nullable - public List> getAll() { - List> list = null; -@@ -314,11 +346,14 @@ public class SynchedEntityData { - final EntityDataAccessor accessor; + public List> getNonDefaultValues() { + List> list = null; +@@ -291,11 +320,14 @@ public class SynchedEntityData { T value; + private final T initialValue; private boolean dirty; + @Nullable T foreignValue = null; // Slice + private boolean foreignDirty; // Slice public DataItem(EntityDataAccessor data, T value) { this.accessor = data; + this.initialValue = value; this.value = value; - this.dirty = true; + this.foreignDirty = true; // Slice } public EntityDataAccessor getAccessor() { -@@ -344,5 +379,34 @@ public class SynchedEntityData { - public SynchedEntityData.DataItem copy() { - return new SynchedEntityData.DataItem<>(this.accessor, this.accessor.getSerializer().copy(this.value)); +@@ -325,6 +357,35 @@ public class SynchedEntityData { + public SynchedEntityData.DataValue value() { + return SynchedEntityData.DataValue.create(this.accessor, this.value); } + + // Slice start @@ -128,37 +107,39 @@ index a376fc453986b66560f57076f0a72dcae9d427c2..2f28c2a8f99732c1791283429730b5d2 + } + // Slice end } - } + + public static record DataValue(int id, EntityDataSerializer serializer, T value) { // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 2358bb1788cfb902bac9b3b7588954af2d2cd823..8b30e408d12ccabb66f94829879781e88023f271 100644 +index 190e9761087baec5827d722a8281f0ffb6798341..6d5a3bf7f93ea96d8615aaab2f88c40f524aa888 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -361,7 +361,19 @@ public class ServerEntity { - SynchedEntityData datawatcher = this.entity.getEntityData(); +@@ -367,7 +367,20 @@ public class ServerEntity { - if (datawatcher.isDirty()) { -- this.broadcastAndSend(new ClientboundSetEntityDataPacket(this.entity.getId(), datawatcher, false)); + if (list != null) { + this.trackedDataValues = datawatcher.getNonDefaultValues(); +- this.broadcastAndSend(new ClientboundSetEntityDataPacket(this.entity.getId(), list)); ++ + // Slice start -+ ClientboundSetEntityDataPacket dataPacket = new ClientboundSetEntityDataPacket(this.entity.getId(), datawatcher, false); ++ ClientboundSetEntityDataPacket dataPacket = new ClientboundSetEntityDataPacket(this.entity.getId(), list); + if (this.entity instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(dataPacket); + } + + //Get the packedData that the original packet has, and then determine if any of those are changed in + //the foreign version. If null, nothing to notify foreign trackers about. -+ List> dirtyItems = datawatcher.packForeignDirty(dataPacket.getUnpackedData()); ++ List> dirtyItems = datawatcher.packForeignDirty(); + if (dirtyItems != null) { -+ this.broadcast(new ClientboundSetEntityDataPacket(this.entity.getId(), dirtyItems)); ++ broadcast.accept(new ClientboundSetEntityDataPacket(this.entity.getId(), dirtyItems)); + } + // Slice end } if (this.entity instanceof LivingEntity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a6c58a4cd3e9b0621fa1691d585c284e72091873..e8ca5bed288ee13b68de2e5d01fbccfe9cac5b1d 100644 +index 127b87e687a5dcfb6dcdc09e9efc08114933e91b..282cee03458ce6fa16896d988ac4d1dc887e5501 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3100,7 +3100,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3129,7 +3129,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); return; } @@ -168,10 +149,10 @@ index a6c58a4cd3e9b0621fa1691d585c284e72091873..e8ca5bed288ee13b68de2e5d01fbccfe } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 08732b3a77ad0541b3ca57b4478e13a337e31439..a03477da71266e61dc219b5da9a15c48f32b508a 100644 +index 2ebb2e95241caf0393ed5db8f02776f566b88960..8b27a118c28baaaf4356174dd55351982560b548 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -641,7 +641,7 @@ public abstract class Player extends LivingEntity { +@@ -637,7 +637,7 @@ public abstract class Player extends LivingEntity { public void increaseScore(int score) { int j = this.getScore(); @@ -181,10 +162,10 @@ index 08732b3a77ad0541b3ca57b4478e13a337e31439..a03477da71266e61dc219b5da9a15c48 public void startAutoSpinAttack(int riptideTicks) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 66830ccee464083879f79db4111e08fecee417ec..46c3f5327adb2324a77c3576958cc91866960e7c 100644 +index b32f44beab2c9790ee2da8403e362e8b3ecc6175..2c3b361d604b30cc114ecaa9874bc1f6cdcae22a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2351,7 +2351,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2323,7 +2323,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.sendHealthUpdate(); } } diff --git a/patches/server/0012-Add-player-data-saving-events.patch b/patches/server/0011-Add-player-data-saving-events.patch similarity index 95% rename from patches/server/0012-Add-player-data-saving-events.patch rename to patches/server/0011-Add-player-data-saving-events.patch index 90181ecbb..98a4eb1c2 100644 --- a/patches/server/0012-Add-player-data-saving-events.patch +++ b/patches/server/0011-Add-player-data-saving-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add player data saving events diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index d074483088ab4d2377e1bf249ca8cb59f1c45a1d..83886825ffa726e7e58f828d947eca7cce081eb4 100644 +index 58b093bb1de78ee3b3b2ea364aa50474883f443a..0989c7deef13ee202560fb2f44cbd273f9817f91 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -590,6 +590,8 @@ public class ServerPlayerGameMode { @@ -18,10 +18,10 @@ index d074483088ab4d2377e1bf249ca8cb59f1c45a1d..83886825ffa726e7e58f828d947eca7c CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockposition, itemstack1); } diff --git a/src/main/java/net/minecraft/stats/ServerStatsCounter.java b/src/main/java/net/minecraft/stats/ServerStatsCounter.java -index c59f98ca3adfdd90cdc5999aeadbb0834efedc0f..6e819bd376eb9edee6bf8bd8c08a755599f1514a 100644 +index 72946e324c575ef39f3939225b96b68f724da460..cc6eded233655888664cab9808c7c3ecd07c5cce 100644 --- a/src/main/java/net/minecraft/stats/ServerStatsCounter.java +++ b/src/main/java/net/minecraft/stats/ServerStatsCounter.java -@@ -201,7 +201,12 @@ public class ServerStatsCounter extends StatsCounter { +@@ -202,7 +202,12 @@ public class ServerStatsCounter extends StatsCounter { return nbttagcompound; } @@ -35,7 +35,7 @@ index c59f98ca3adfdd90cdc5999aeadbb0834efedc0f..6e819bd376eb9edee6bf8bd8c08a7555 Map, JsonObject> map = Maps.newHashMap(); ObjectIterator objectiterator = this.stats.object2IntEntrySet().iterator(); -@@ -227,7 +232,7 @@ public class ServerStatsCounter extends StatsCounter { +@@ -228,7 +233,7 @@ public class ServerStatsCounter extends StatsCounter { jsonobject1.add("stats", jsonobject); jsonobject1.addProperty("DataVersion", SharedConstants.getCurrentVersion().getWorldVersion()); diff --git a/patches/server/0013-Add-PlayerGetRespawnLocationEvent.patch b/patches/server/0012-Add-PlayerGetRespawnLocationEvent.patch similarity index 97% rename from patches/server/0013-Add-PlayerGetRespawnLocationEvent.patch rename to patches/server/0012-Add-PlayerGetRespawnLocationEvent.patch index b8a30a18f..6f5607ad7 100644 --- a/patches/server/0013-Add-PlayerGetRespawnLocationEvent.patch +++ b/patches/server/0012-Add-PlayerGetRespawnLocationEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerGetRespawnLocationEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3be9352ae9b0b84acf07064b45562ceffd30391b..6f0efd3459da45e4aa3a59e8b647725b779cdf51 100644 +index f381bf9064be548a4a603e0042886d8a5e70ba5b..673930ebb5027b71bc4a780ecd354108ed8c7226 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -886,49 +886,57 @@ public abstract class PlayerList { +@@ -817,49 +817,57 @@ public abstract class PlayerList { // CraftBukkit start - fire PlayerRespawnEvent if (location == null) { diff --git a/patches/server/0015-Set-multiple-Team-settings-at-once.patch b/patches/server/0013-Set-multiple-Team-settings-at-once.patch similarity index 100% rename from patches/server/0015-Set-multiple-Team-settings-at-once.patch rename to patches/server/0013-Set-multiple-Team-settings-at-once.patch diff --git a/patches/server/0014-Disable-Azalea-generation.patch b/patches/server/0014-Disable-Azalea-generation.patch deleted file mode 100644 index 82720c01e..000000000 --- a/patches/server/0014-Disable-Azalea-generation.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Cryptite -Date: Fri, 12 Aug 2022 11:12:12 -0500 -Subject: [PATCH] Disable Azalea generation - - -diff --git a/src/main/java/net/minecraft/data/worldgen/BiomeDefaultFeatures.java b/src/main/java/net/minecraft/data/worldgen/BiomeDefaultFeatures.java -index 415610172cea5b982222e1c5ad476e43511fcd64..1b544f917dee2b049b7c606c1b1cd87378a15d90 100644 ---- a/src/main/java/net/minecraft/data/worldgen/BiomeDefaultFeatures.java -+++ b/src/main/java/net/minecraft/data/worldgen/BiomeDefaultFeatures.java -@@ -161,7 +161,7 @@ public class BiomeDefaultFeatures { - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.CAVE_VINES); - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.LUSH_CAVES_CLAY); - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.LUSH_CAVES_VEGETATION); -- builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.ROOTED_AZALEA_TREE); -+// builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.ROOTED_AZALEA_TREE); // Slice - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.SPORE_BLOSSOM); - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, CavePlacements.CLASSIC_VINES); - } -diff --git a/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java b/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java -index ded33cfbda2d0f6e11cc1304c5ee5b1940b6de04..1e13c9c235c5a9d7d6d2270e837031985f152cbb 100644 ---- a/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java -+++ b/src/main/java/net/minecraft/data/worldgen/features/CaveFeatures.java -@@ -69,7 +69,7 @@ public class CaveFeatures { - private static final RandomizedIntStateProvider CAVE_VINES_HEAD_PROVIDER = new RandomizedIntStateProvider(new WeightedStateProvider(SimpleWeightedRandomList.builder().add(Blocks.CAVE_VINES.defaultBlockState(), 4).add(Blocks.CAVE_VINES.defaultBlockState().setValue(CaveVines.BERRIES, Boolean.valueOf(true)), 1)), CaveVinesBlock.AGE, UniformInt.of(23, 25)); - public static final Holder> CAVE_VINE = FeatureUtils.register("cave_vine", Feature.BLOCK_COLUMN, new BlockColumnConfiguration(List.of(BlockColumnConfiguration.layer(new WeightedListInt(SimpleWeightedRandomList.builder().add(UniformInt.of(0, 19), 2).add(UniformInt.of(0, 2), 3).add(UniformInt.of(0, 6), 10).build()), CAVE_VINES_BODY_PROVIDER), BlockColumnConfiguration.layer(ConstantInt.of(1), CAVE_VINES_HEAD_PROVIDER)), Direction.DOWN, BlockPredicate.ONLY_IN_AIR_PREDICATE, true)); - public static final Holder> CAVE_VINE_IN_MOSS = FeatureUtils.register("cave_vine_in_moss", Feature.BLOCK_COLUMN, new BlockColumnConfiguration(List.of(BlockColumnConfiguration.layer(new WeightedListInt(SimpleWeightedRandomList.builder().add(UniformInt.of(0, 3), 5).add(UniformInt.of(1, 7), 1).build()), CAVE_VINES_BODY_PROVIDER), BlockColumnConfiguration.layer(ConstantInt.of(1), CAVE_VINES_HEAD_PROVIDER)), Direction.DOWN, BlockPredicate.ONLY_IN_AIR_PREDICATE, true)); -- public static final Holder> MOSS_VEGETATION = FeatureUtils.register("moss_vegetation", Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(new WeightedStateProvider(SimpleWeightedRandomList.builder().add(Blocks.FLOWERING_AZALEA.defaultBlockState(), 4).add(Blocks.AZALEA.defaultBlockState(), 7).add(Blocks.MOSS_CARPET.defaultBlockState(), 25).add(Blocks.GRASS.defaultBlockState(), 50).add(Blocks.TALL_GRASS.defaultBlockState(), 10)))); -+ public static final Holder> MOSS_VEGETATION = FeatureUtils.register("moss_vegetation", Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(new WeightedStateProvider(SimpleWeightedRandomList.builder().add(Blocks.MOSS_CARPET.defaultBlockState(), 25).add(Blocks.GRASS.defaultBlockState(), 50).add(Blocks.TALL_GRASS.defaultBlockState(), 10)))); - public static final Holder> MOSS_PATCH = FeatureUtils.register("moss_patch", Feature.VEGETATION_PATCH, new VegetationPatchConfiguration(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.simple(Blocks.MOSS_BLOCK), PlacementUtils.inlinePlaced(MOSS_VEGETATION), CaveSurface.FLOOR, ConstantInt.of(1), 0.0F, 5, 0.8F, UniformInt.of(4, 7), 0.3F)); - public static final Holder> MOSS_PATCH_BONEMEAL = FeatureUtils.register("moss_patch_bonemeal", Feature.VEGETATION_PATCH, new VegetationPatchConfiguration(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.simple(Blocks.MOSS_BLOCK), PlacementUtils.inlinePlaced(MOSS_VEGETATION), CaveSurface.FLOOR, ConstantInt.of(1), 0.0F, 5, 0.6F, UniformInt.of(1, 2), 0.75F)); - public static final Holder> DRIPLEAF = FeatureUtils.register("dripleaf", Feature.SIMPLE_RANDOM_SELECTOR, new SimpleRandomFeatureConfiguration(HolderSet.direct(makeSmallDripleaf(), makeDripleaf(Direction.EAST), makeDripleaf(Direction.WEST), makeDripleaf(Direction.SOUTH), makeDripleaf(Direction.NORTH)))); diff --git a/patches/server/0016-Smooth-Teleports.patch b/patches/server/0014-Smooth-Teleports.patch similarity index 82% rename from patches/server/0016-Smooth-Teleports.patch rename to patches/server/0014-Smooth-Teleports.patch index edac989ba..3af686a65 100644 --- a/patches/server/0016-Smooth-Teleports.patch +++ b/patches/server/0014-Smooth-Teleports.patch @@ -5,27 +5,27 @@ Subject: [PATCH] Smooth Teleports diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9c9b4d7e0637348a94befce9377fdb69c1239694..46ff63d0a2c05c67bcedccc2827120f088acd066 100644 +index 7d6d3c8556033d289fdadc489e73fba478fce41a..fc07b3340c8e90df20ab3989bb07a8c4bfc13579 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -266,6 +266,7 @@ public class ServerPlayer extends Player { - public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks +@@ -268,6 +268,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper + public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event + public boolean smoothWorldTeleport; // Slice - public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, @Nullable ProfilePublicKey publicKey) { - super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile, publicKey); + public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { + super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6f0efd3459da45e4aa3a59e8b647725b779cdf51..3b3a4d7b1e94c8a9be64e3423654a1490b762ef9 100644 +index 673930ebb5027b71bc4a780ecd354108ed8c7226..b1e0a4f51b58ffdff72127886d5c9014002dd52f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -966,12 +966,12 @@ public abstract class PlayerList { - } +@@ -899,12 +899,12 @@ public abstract class PlayerList { + int i = flag ? 1 : 0; // CraftBukkit start LevelData worlddata = worldserver1.getLevelData(); -- entityplayer1.connection.send(new ClientboundRespawnPacket(worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), flag, entityplayer1.getLastDeathLocation())); -+ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), flag, entityplayer1.getLastDeathLocation())); +- entityplayer1.connection.send(new ClientboundRespawnPacket(worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), (byte) i, entityplayer1.getLastDeathLocation())); ++ if (!entityplayer.smoothWorldTeleport) entityplayer1.connection.send(new ClientboundRespawnPacket(worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), (byte) i, entityplayer1.getLastDeathLocation())); entityplayer1.connection.send(new ClientboundSetChunkCacheRadiusPacket(worldserver1.getChunkSource().chunkMap.playerChunkManager.getTargetSendDistance())); // Spigot // Paper - replace old player chunk management entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.getChunkSource().chunkMap.playerChunkManager.getTargetTickViewDistance())); // Spigot // Paper - replace old player chunk management entityplayer1.spawnIn(worldserver1); @@ -36,10 +36,10 @@ index 6f0efd3459da45e4aa3a59e8b647725b779cdf51..3b3a4d7b1e94c8a9be64e3423654a149 // entityplayer1.connection.teleport(entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3c301c3621cfc3c99788064231af7e106f418e3b..fb2703bc25242fe82e989032175e138ffa0b46b4 100644 +index 2c3b361d604b30cc114ecaa9874bc1f6cdcae22a..2f614915026dd9d44589cb1c1da28aca9b202d12 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1216,6 +1216,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1175,6 +1175,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end } diff --git a/patches/server/0017-Allow-access-to-LightEngine.patch b/patches/server/0015-Allow-access-to-LightEngine.patch similarity index 86% rename from patches/server/0017-Allow-access-to-LightEngine.patch rename to patches/server/0015-Allow-access-to-LightEngine.patch index 4a2c52833..9c78fbc91 100644 --- a/patches/server/0017-Allow-access-to-LightEngine.patch +++ b/patches/server/0015-Allow-access-to-LightEngine.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow access to LightEngine diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 55d8ced734a408c990c6c4fbc81707bcb1f27daa..3fc426cb23ccf9baf922eca0aaca866cd1994cba 100644 +index 2212f9f48636357265d8e44aba415ea4f09f1fe7..34d32abbec7bc79751d46f4b15f7b6cbe5a71e11 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -494,7 +494,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -506,7 +506,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return !ChunkMap.isChunkInRange(x1, z1, x2, z2, distance) ? false : (!ChunkMap.isChunkInRange(x1 + 1, z1, x2, z2, distance) ? true : (!ChunkMap.isChunkInRange(x1, z1 + 1, x2, z2, distance) ? true : (!ChunkMap.isChunkInRange(x1 - 1, z1, x2, z2, distance) ? true : !ChunkMap.isChunkInRange(x1, z1 - 1, x2, z2, distance)))); } diff --git a/patches/server/0018-Unfreeze-MappedRegistry.patch b/patches/server/0016-Unfreeze-MappedRegistry.patch similarity index 53% rename from patches/server/0018-Unfreeze-MappedRegistry.patch rename to patches/server/0016-Unfreeze-MappedRegistry.patch index 381103474..cee37c01a 100644 --- a/patches/server/0018-Unfreeze-MappedRegistry.patch +++ b/patches/server/0016-Unfreeze-MappedRegistry.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Unfreeze MappedRegistry diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java -index 3ef5d440fd3ce209110543bfd36569e846a5b749..7afb07a24c21706473c28a058214e81ebff1ab0a 100644 +index 1e33434f9f361542e03da3e4812bc6d76768a202..834a6f2eb2d6c0aa3afd450034f32b4e008b3a3c 100644 --- a/src/main/java/net/minecraft/core/MappedRegistry.java +++ b/src/main/java/net/minecraft/core/MappedRegistry.java -@@ -331,6 +331,8 @@ public class MappedRegistry extends WritableRegistry { +@@ -335,7 +335,7 @@ public class MappedRegistry implements WritableRegistry { @Override public Registry freeze() { -+ if (true) return this; // Slice (a TODO in Paper, thanks Owen) -+ - this.frozen = true; - List list = this.byKey.entrySet().stream().filter((entry) -> { - return !entry.getValue().isBound(); +- if (this.frozen) { ++ if (this.true) { // Slice (a TODO in Paper, thanks Owen) + return this; + } else { + this.frozen = true; diff --git a/patches/server/0019-Equipment-Packet-Caching.patch b/patches/server/0017-Equipment-Packet-Caching.patch similarity index 86% rename from patches/server/0019-Equipment-Packet-Caching.patch rename to patches/server/0017-Equipment-Packet-Caching.patch index cded02946..0530d1ec4 100644 --- a/patches/server/0019-Equipment-Packet-Caching.patch +++ b/patches/server/0017-Equipment-Packet-Caching.patch @@ -27,10 +27,10 @@ index 5a8f850b447fc3a4bd0eb0c505bbdfc8be7115e8..997c9656c9cf815ad2769d4dea6f67a2 this.entity = buf.readVarInt(); EquipmentSlot[] equipmentSlots = EquipmentSlot.values(); diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 8b30e408d12ccabb66f94829879781e88023f271..52d021c87b40906a546678af6aa030843e6e669b 100644 +index 6d5a3bf7f93ea96d8615aaab2f88c40f524aa888..47b9b5d165d96fa978aeefb1825a3f94ba732bca 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -300,27 +300,8 @@ public class ServerEntity { +@@ -304,27 +304,8 @@ public class ServerEntity { consumer.accept(new ClientboundSetEntityMotionPacket(this.entity.getId(), this.ap)); } @@ -61,10 +61,10 @@ index 8b30e408d12ccabb66f94829879781e88023f271..52d021c87b40906a546678af6aa03084 // CraftBukkit start - Fix for nonsensical head yaw diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index be20f0971d34804b95f939896594f747497fde53..7e996a81b20c37a0570c21887b01490d106457e8 100644 +index b9fbbd5d775af0ce7d9eba97e14046233c64b0fd..5611ddc32992a8d06095fcde814c40f72efc72d5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -265,6 +265,8 @@ public abstract class LivingEntity extends Entity { +@@ -266,6 +266,8 @@ public abstract class LivingEntity extends Entity { public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper @@ -73,7 +73,7 @@ index be20f0971d34804b95f939896594f747497fde53..7e996a81b20c37a0570c21887b01490d @Override public float getBukkitYaw() { -@@ -3057,6 +3059,7 @@ public abstract class LivingEntity extends Entity { +@@ -3074,6 +3076,7 @@ public abstract class LivingEntity extends Entity { if (map != null) { this.handleHandSwap(map); if (!map.isEmpty()) { @@ -81,7 +81,7 @@ index be20f0971d34804b95f939896594f747497fde53..7e996a81b20c37a0570c21887b01490d this.handleEquipmentChanges(map); } } -@@ -3145,7 +3148,25 @@ public abstract class LivingEntity extends Entity { +@@ -3166,7 +3169,25 @@ public abstract class LivingEntity extends Entity { } }); @@ -108,7 +108,7 @@ index be20f0971d34804b95f939896594f747497fde53..7e996a81b20c37a0570c21887b01490d } // Paper start - hide unnecessary item meta -@@ -4413,4 +4434,72 @@ public abstract class LivingEntity extends Entity { +@@ -4432,4 +4453,72 @@ public abstract class LivingEntity extends Entity { public static record Fallsounds(SoundEvent small, SoundEvent big) { } @@ -181,28 +181,11 @@ index be20f0971d34804b95f939896594f747497fde53..7e996a81b20c37a0570c21887b01490d + } + // Slice end } -diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c77fec21a4e988da14af15dfd45a565c0cd7df00..f1b9cbc0642a92cae2424b2f16e9c9bf71f76141 100644 ---- a/src/main/java/net/minecraft/world/item/ItemStack.java -+++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -707,7 +707,11 @@ public final class ItemStack { - } - - public static boolean isSameIgnoreDurability(ItemStack left, ItemStack right) { -- return left == right ? true : (!left.isEmpty() && !right.isEmpty() ? left.sameItemStackIgnoreDurability(right) : false); -+ // Slice start -+ boolean rightEmpty = right.isEmpty(); -+ boolean leftEmpty = left.isEmpty(); -+ return left == right || leftEmpty && rightEmpty ? true : (!leftEmpty && !rightEmpty ? left.sameItemStackIgnoreDurability(right) : false); -+ // Slice end - } - - public boolean sameItem(ItemStack stack) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 316120a57802c45fb9b02a4daee207a0845c63be..df3d23c8465baed13eda276c2b0750de61bdb473 100644 +index 09da9d3c85e36c2a78663f58a97963dbc795a367..50d4fc1681d035128b4bcf4318312017fd84dc16 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1043,4 +1043,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1054,4 +1054,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { getHandle().knockback(strength, directionX, directionZ); }; // Paper end diff --git a/patches/server/0020-AntiXray-Bypass.patch b/patches/server/0018-AntiXray-Bypass.patch similarity index 83% rename from patches/server/0020-AntiXray-Bypass.patch rename to patches/server/0018-AntiXray-Bypass.patch index be574de11..f2630a28f 100644 --- a/patches/server/0020-AntiXray-Bypass.patch +++ b/patches/server/0018-AntiXray-Bypass.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AntiXray Bypass diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java -index dabd93c35bdbac6a8b668a82d5f3d4173a1baa4a..3c144e41dbe5735fb72094281596e22e95eea082 100644 +index 4f3670b2bdb8b1b252e9f074a6af56a018a8c465..31146c7cbaced5658ed43f05239b8165ce7c0a1d 100644 --- a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java -@@ -162,6 +162,7 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo +@@ -163,6 +163,7 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo @Override public boolean shouldModify(ServerPlayer player, LevelChunk chunk) { @@ -17,10 +17,10 @@ index dabd93c35bdbac6a8b668a82d5f3d4173a1baa4a..3c144e41dbe5735fb72094281596e22e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fb2703bc25242fe82e989032175e138ffa0b46b4..83b4bc9238a8adbebfd0dd62b99075632e79281a 100644 +index 2f614915026dd9d44589cb1c1da28aca9b202d12..abb7cb5cd93b7eb4f2f85cb40045bad35fc10b01 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -176,6 +176,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -178,6 +178,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit private long lastSaveTime; // Paper end @@ -28,7 +28,7 @@ index fb2703bc25242fe82e989032175e138ffa0b46b4..83b4bc9238a8adbebfd0dd62b9907563 public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); -@@ -2596,6 +2597,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2568,6 +2569,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0021-PlayerPreChunkLoadEvent.patch b/patches/server/0019-PlayerPreChunkLoadEvent.patch similarity index 94% rename from patches/server/0021-PlayerPreChunkLoadEvent.patch rename to patches/server/0019-PlayerPreChunkLoadEvent.patch index 87171790d..d54fe2470 100644 --- a/patches/server/0021-PlayerPreChunkLoadEvent.patch +++ b/patches/server/0019-PlayerPreChunkLoadEvent.patch @@ -34,10 +34,10 @@ index 0b060183429f4c72ec767075538477b4302bbf0d..e4461c176682644d842b15b833c66203 new ChunkPos(chunkX, chunkZ), new MutableObject<>(), false, true); // unloaded, loaded this.player.connection.connection.execute(onChunkSend); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6d92d1e1301555dd77968e9f1d7347497200dd63..24b7ea846bf19a99f670a40e3623578cfa888282 100644 +index 0c8ec5c60d123e1fc7984dc45ba2df16612314b3..0295f39efc828cc3fb23df12a959a4e4469e606f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -524,6 +524,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -523,6 +523,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { return true; } diff --git a/patches/server/0022-Shared-DataStorage-for-maps.patch b/patches/server/0020-Shared-DataStorage-for-maps.patch similarity index 89% rename from patches/server/0022-Shared-DataStorage-for-maps.patch rename to patches/server/0020-Shared-DataStorage-for-maps.patch index 1420b1e61..8799bff74 100644 --- a/patches/server/0022-Shared-DataStorage-for-maps.patch +++ b/patches/server/0020-Shared-DataStorage-for-maps.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shared DataStorage for maps diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index 5982dda61e07f1661b0a68d0ba1fcc1122e8d428..4635d78d194f28fb56e436383124f3f5a9fc9d2e 100644 +index 4532f3a0d74feae0a1249b53e1bfbc18a8808b32..2df8d02d7151d3483587c22f70dea1439d439553 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -360,6 +360,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -364,6 +364,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Maps extends ConfigurationPart { public int itemFrameCursorLimit = 128; public int itemFrameCursorUpdateInterval = 10; @@ -17,10 +17,10 @@ index 5982dda61e07f1661b0a68d0ba1fcc1122e8d428..4635d78d194f28fb56e436383124f3f5 public Fixes fixes; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index eb6a4127acba7647d3cec0ec2f51c18ea6f22186..08aac55ad66e982b62d7baa52dd2b36ea97a27c0 100644 +index 274a8deb22d0d6d07d1e6278935000756ae37ac5..79f85a4d93b837e4b7f2e62f599359bf939ddc90 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -227,6 +227,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -229,6 +229,8 @@ public class ServerLevel extends Level implements WorldGenLevel { return thr; } @@ -45,7 +45,7 @@ index eb6a4127acba7647d3cec0ec2f51c18ea6f22186..08aac55ad66e982b62d7baa52dd2b36e } public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) { -@@ -1319,6 +1330,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1337,6 +1348,7 @@ public class ServerLevel extends Level implements WorldGenLevel { }// Paper // Paper - rewrite chunk system - entity saving moved into ChunkHolder @@ -53,7 +53,7 @@ index eb6a4127acba7647d3cec0ec2f51c18ea6f22186..08aac55ad66e982b62d7baa52dd2b36e } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1945,11 +1957,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1918,11 +1930,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return this.getChunkSource().getDataStorage(); } @@ -72,7 +72,7 @@ index eb6a4127acba7647d3cec0ec2f51c18ea6f22186..08aac55ad66e982b62d7baa52dd2b36e // We only get here when the data file exists, but is not a valid map MapItemSavedData newMap = MapItemSavedData.load(nbttagcompound); newMap.id = id; -@@ -1963,12 +1981,22 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1936,12 +1954,22 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void setMapData(String id, MapItemSavedData state) { state.id = id; // CraftBukkit @@ -98,7 +98,7 @@ index eb6a4127acba7647d3cec0ec2f51c18ea6f22186..08aac55ad66e982b62d7baa52dd2b36e // Paper start - helper function for configurable spawn radius diff --git a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java -index 2513069f4ffe594857762ef51f1b9a078b8b1d17..88b13bfa3393d9901c8a1b62bcc37f03919d747b 100644 +index 2da78bc43af715fe399eac1d83b3bf6e8fb8afac..3a8d2344b8e3485c9d4a7abb1b22e853b710ef4e 100644 --- a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java +++ b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java @@ -58,7 +58,7 @@ public class DimensionDataStorage { diff --git a/patches/server/0023-Set-COOKED_MUTTON-nutrition-equal-to-COOKED_BEEF.patch b/patches/server/0021-Set-COOKED_MUTTON-nutrition-equal-to-COOKED_BEEF.patch similarity index 100% rename from patches/server/0023-Set-COOKED_MUTTON-nutrition-equal-to-COOKED_BEEF.patch rename to patches/server/0021-Set-COOKED_MUTTON-nutrition-equal-to-COOKED_BEEF.patch diff --git a/patches/server/0024-Player-specific-target-chunk-send-rate.patch b/patches/server/0022-Player-specific-target-chunk-send-rate.patch similarity index 86% rename from patches/server/0024-Player-specific-target-chunk-send-rate.patch rename to patches/server/0022-Player-specific-target-chunk-send-rate.patch index b1375bf27..989bce0b0 100644 --- a/patches/server/0024-Player-specific-target-chunk-send-rate.patch +++ b/patches/server/0022-Player-specific-target-chunk-send-rate.patch @@ -37,10 +37,10 @@ index e4461c176682644d842b15b833c662039333d24f..9dabd5bb2d9e6c2f9a6dc7103ca91447 synchronized (this.sendingChunkCounts) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 46ff63d0a2c05c67bcedccc2827120f088acd066..b30d6d9e8a4157d3238bad6ea68b4de52f27334b 100644 +index fc07b3340c8e90df20ab3989bb07a8c4bfc13579..5fc08093a818486642fbff9a3587bc5e7d051ea2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -13,6 +13,8 @@ import java.util.Objects; +@@ -14,6 +14,8 @@ import java.util.Objects; import java.util.Optional; import java.util.OptionalInt; import javax.annotation.Nullable; @@ -49,11 +49,11 @@ index 46ff63d0a2c05c67bcedccc2827120f088acd066..b30d6d9e8a4157d3238bad6ea68b4de5 import net.minecraft.BlockUtil; import net.minecraft.ChatFormatting; import net.minecraft.CrashReport; -@@ -267,6 +269,7 @@ public class ServerPlayer extends Player { - public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper +@@ -269,6 +271,7 @@ public class ServerPlayer extends Player { + public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event public boolean smoothWorldTeleport; // Slice + public double targetChunkSendRate = GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate; // Slice - public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, @Nullable ProfilePublicKey publicKey) { - super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile, publicKey); + public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { + super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/patches/server/0007-Add-BlockDestroyedByNeighborEvent.patch b/patches/server/0023-Add-BlockDestroyedByNeighborEvent.patch similarity index 81% rename from patches/server/0007-Add-BlockDestroyedByNeighborEvent.patch rename to patches/server/0023-Add-BlockDestroyedByNeighborEvent.patch index adfd3842e..9302b79e8 100644 --- a/patches/server/0007-Add-BlockDestroyedByNeighborEvent.patch +++ b/patches/server/0023-Add-BlockDestroyedByNeighborEvent.patch @@ -1,11 +1,24 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cryptite -Date: Fri, 12 Aug 2022 09:54:06 -0500 +Date: Fri, 30 Dec 2022 10:03:50 -0600 Subject: [PATCH] Add BlockDestroyedByNeighborEvent +diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java +index 834a6f2eb2d6c0aa3afd450034f32b4e008b3a3c..3b2090503a4208c416167f5c70d3d8a4121cf916 100644 +--- a/src/main/java/net/minecraft/core/MappedRegistry.java ++++ b/src/main/java/net/minecraft/core/MappedRegistry.java +@@ -335,7 +335,7 @@ public class MappedRegistry implements WritableRegistry { + + @Override + public Registry freeze() { +- if (this.true) { // Slice (a TODO in Paper, thanks Owen) ++ if (true) { // Slice (a TODO in Paper, thanks Owen) + return this; + } else { + this.frozen = true; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 0a5f8d990cce5df339fd9b2b0fcb291a20ddad41..d074483088ab4d2377e1bf249ca8cb59f1c45a1d 100644 +index 0989c7deef13ee202560fb2f44cbd273f9817f91..168e68f1a93b2a134952cd88a35501a3290694e9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -410,6 +410,7 @@ public class ServerPlayerGameMode { @@ -25,10 +38,10 @@ index 0a5f8d990cce5df339fd9b2b0fcb291a20ddad41..d074483088ab4d2377e1bf249ca8cb59 org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - use stored ref } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c18a0bc94d0210396046f4475e49a739088593f3..03f057134831bd119bb8dd820d4a0868b8f90b31 100644 +index 6ed921621f66dc4bfec66a307db24defb3caf380..c5a8e12055c46015b499eadf5614597c77a39e90 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -345,6 +345,7 @@ public final class ItemStack { +@@ -353,6 +353,7 @@ public final class ItemStack { } } Item item = this.getItem(); @@ -37,10 +50,10 @@ index c18a0bc94d0210396046f4475e49a739088593f3..03f057134831bd119bb8dd820d4a0868 CompoundTag newData = this.getTagClone(); int newCount = this.getCount(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2fff811d725dedaac2085bb3eaedea8bd7620c56..fac83e6a3c6120a8e8768e363fc82083e4e53265 100644 +index 264a6bc9f174a42dfeed4822dbb1bd3cc608d108..1914c22c9d3cdc338a9c5ddf03ddf00cf7eb457d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -182,6 +182,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -181,6 +181,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here @@ -68,7 +81,7 @@ index 2fff811d725dedaac2085bb3eaedea8bd7620c56..fac83e6a3c6120a8e8768e363fc82083 // Paper start - fix and optimise world upgrading // copied from below public static ResourceKey getDimensionKey(DimensionType manager) { -@@ -663,6 +684,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -662,6 +683,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (!this.preventPoiUpdated) { this.onBlockStateChange(blockposition, iblockdata1, iblockdata2); } @@ -76,7 +89,7 @@ index 2fff811d725dedaac2085bb3eaedea8bd7620c56..fac83e6a3c6120a8e8768e363fc82083 // CraftBukkit end } } -@@ -684,6 +706,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -683,6 +705,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (iblockdata.isAir()) { return false; } else { @@ -95,10 +108,10 @@ index 2fff811d725dedaac2085bb3eaedea8bd7620c56..fac83e6a3c6120a8e8768e363fc82083 // Paper start - while the above setAir method is named same and looks very similar // they are NOT used with same intent and the above should not fire this event. The above method is more of a BlockSetToAirEvent, diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java -index fa97966d39f01301a8ba976c02dc697e0a74bfb1..3f0cbdb4294f3fc1b953d7baa7903d2e5471b337 100644 +index e234ae13fe9793db237adb6f6216fa32638cfc4f..c126742149b10cc67caa18c7c4d8e1c7108c6c15 100644 --- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java -@@ -103,6 +103,15 @@ public class DoublePlantBlock extends BushBlock { +@@ -105,6 +105,15 @@ public class DoublePlantBlock extends BushBlock { BlockPos blockposition1 = pos.below(); BlockState iblockdata1 = world.getBlockState(blockposition1); @@ -112,13 +125,13 @@ index fa97966d39f01301a8ba976c02dc697e0a74bfb1..3f0cbdb4294f3fc1b953d7baa7903d2e + } + if (iblockdata1.is(state.getBlock()) && iblockdata1.getValue(DoublePlantBlock.HALF) == DoubleBlockHalf.LOWER) { - BlockState iblockdata2 = iblockdata1.hasProperty(BlockStateProperties.WATERLOGGED) && (Boolean) iblockdata1.getValue(BlockStateProperties.WATERLOGGED) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState(); + BlockState iblockdata2 = iblockdata1.getFluidState().is((Fluid) Fluids.WATER) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index b86c17b5572f8f74bfefd0f3c6f9d25187574392..473161ff4ba0939d69d212eb032ceb630fe5d19e 100644 +index 25ce337ed266be7bafeacd9eb6f53a9474775fc5..cd4a84f8ab08dbed23a6cd15b90c0d530728b85f 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -989,6 +989,16 @@ public abstract class BlockBehaviour { +@@ -1016,6 +1016,16 @@ public abstract class BlockBehaviour implements FeatureElement { Direction enumdirection = aenumdirection[l]; blockposition_mutableblockposition.setWithOffset(pos, enumdirection); diff --git a/patches/server/0024-noEntityCollisions-for-Entity.patch b/patches/server/0024-noEntityCollisions-for-Entity.patch new file mode 100644 index 000000000..9f40e8c35 --- /dev/null +++ b/patches/server/0024-noEntityCollisions-for-Entity.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cryptite +Date: Fri, 30 Dec 2022 15:00:35 -0600 +Subject: [PATCH] noEntityCollisions for Entity + + +diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java +index a87f6380b2c387fb0cdd40d5087b5c93492e3c88..cd35c2136a638c07fed683a2f92e70aa57bcfa8e 100644 +--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java ++++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java +@@ -809,7 +809,7 @@ public final class CollisionUtil { + + public static boolean getEntityHardCollisions(final CollisionGetter getter, final Entity entity, AABB aabb, + final List into, final boolean checkOnly, final Predicate predicate) { +- if (isEmpty(aabb) || !(getter instanceof EntityGetter entityGetter)) { ++ if ((entity != null && entity.noEntityCollisions) || isEmpty(aabb) || !(getter instanceof EntityGetter entityGetter)) { // Slice + return false; + } + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index 282cee03458ce6fa16896d988ac4d1dc887e5501..f83e5383e950c9261804991431ff0da89673f277 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -433,6 +433,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + * Overriding this field will cause memory leaks. + */ + private final boolean hardCollides; ++ public boolean noEntityCollisions; // Slice + + private static final java.util.Map, Boolean> cachedOverrides = java.util.Collections.synchronizedMap(new java.util.WeakHashMap<>()); + {