diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 06ef197d6..3db35c943 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1524,7 +1524,7 @@ index ff3eced0e20c39b825586897ee2fed01dd471d88..5c54a5da7fb50cd97799c5fa280a24d5 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9ad7c417616e68b1d14a702aca38b2582feb896c..2e811de518dbc63e791508d060c9db64de48fdbb 100644 +index d1edafb3e44a4d17586e0e9c4fca30389b529074..bf2998947f4165f9a661c8fc5f6b846ab9852370 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -334,7 +334,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1672,10 +1672,10 @@ index be97d38f45046a7f6d2337d879651f04cf9ff825..0b75caca3f77980505d0689601d920fb private void getFullChunk(long pos, Consumer chunkConsumer) { diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 3b144c820531122eb37d41be06c182b5f5dc0724..1eb912ad97f9663bf6bd336ad739f2552b0a5c9b 100644 +index 2358bb1788cfb902bac9b3b7588954af2d2cd823..163f14b4e1ca99d75e5d8e14190f7b91cb58e8f3 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -165,6 +165,7 @@ public class ServerEntity { +@@ -166,6 +166,7 @@ public class ServerEntity { boolean flag4 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L; if (!flag4 && this.teleportDelay <= 400 && !this.wasRiding && this.wasOnGround == this.entity.isOnGround() && !(io.papermc.paper.configuration.GlobalConfiguration.get().collisions.sendFullPosForHardCollidingEntities && this.entity.hardCollides())) { // Paper - send full pos for hard colliding entities to prevent collision problems due to desync @@ -1683,7 +1683,7 @@ index 3b144c820531122eb37d41be06c182b5f5dc0724..1eb912ad97f9663bf6bd336ad739f255 if ((!flag2 || !flag3) && !(this.entity instanceof AbstractArrow)) { if (flag2) { packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.isOnGround()); -@@ -174,6 +175,7 @@ public class ServerEntity { +@@ -175,6 +176,7 @@ public class ServerEntity { } else { packet1 = new ClientboundMoveEntityPacket.PosRot(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), (byte) i, (byte) j, this.entity.isOnGround()); } @@ -1749,7 +1749,7 @@ index 8b3e703ebb497b9166bd211b4247a78891b61aeb..94f4a5bfd2af8389a99f80bab4eceac1 this.getRandomBlockPosition(j, 0, k, 15, blockposition); int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9ad36447e82a3504576f6c10cb297514a2f69289..4e615e5d5b8d79f6eaac2136be03961415fd093e 100644 +index 4ab50df1e4c855587ef030cf3f2a1502798cb721..21c482725d2504b0aedb83ed2a7954b19c11bb61 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1216,6 +1216,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic diff --git a/patches/server/0005-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch index 191f6fb67..5d207d600 100644 --- a/patches/server/0005-Purpur-client-support.patch +++ b/patches/server/0005-Purpur-client-support.patch @@ -17,10 +17,10 @@ index 5819e8e5e3c6f87eb123cf16091ea74357d53b3b..a56e79c852eaec4fbd7e428076323b01 public boolean isRealPlayer; // Paper public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4e615e5d5b8d79f6eaac2136be03961415fd093e..42978e1ea82b4d6a740150893518c4f6bd1562eb 100644 +index 21c482725d2504b0aedb83ed2a7954b19c11bb61..9dc8a6570e95b4d281c9a28e441e4931058f155e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3647,6 +3647,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3648,6 +3648,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index 4e615e5d5b8d79f6eaac2136be03961415fd093e..42978e1ea82b4d6a740150893518c4f6 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3671,6 +3672,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3672,6 +3673,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index ac1b4dafe..40fcddb95 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -66,7 +66,7 @@ index 9091241c21715e2bbe43a11ba637ec7759e7a43a..c347e5df53355b88bf3f69c0d4e95b48 public void doTick() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 42978e1ea82b4d6a740150893518c4f6bd1562eb..f8c0df22fec9ec08d7346c3d872fa53ff0fa31eb 100644 +index 9dc8a6570e95b4d281c9a28e441e4931058f155e..8fd3571d49c376ab675f1256d1aea60ec500289d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2915,6 +2915,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -77,7 +77,7 @@ index 42978e1ea82b4d6a740150893518c4f6bd1562eb..f8c0df22fec9ec08d7346c3d872fa53f + // Entity in bucket - SPIGOT-4048 and SPIGOT-6859 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { - ServerGamePacketListenerImpl.this.send(new ClientboundAddEntityPacket(entity)); + // Paper start diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java index 3971e5cf1fa98e8269c899f494a018042e83b69a..8bcbaafaa8979773bafe6a9af3e4b97b54039bce 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java @@ -4743,7 +4743,7 @@ index 1fb11985dcfd07ded1f7cadf3fdba7d23ca4f87b..9970c2c09b294e601b7cda4f1e8cbf2a this.level.getProfiler().pop(); this.updateActivity(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 97b3082dc020043fa38d9e5e4591102f97519ed3..be664e96a63bf6042375654e8297e4d6a54c7c8b 100644 +index dc9402e343d3bc0b0d38e3a7834521a976f89c39..fb291a8a792dfd48c70d38b12b2733566ba62506 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -105,11 +105,30 @@ public class Zombie extends Monster { diff --git a/patches/server/0009-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch index dcb9492f8..2fb5babee 100644 --- a/patches/server/0009-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7816aae4b7e1745f138cdcc12575eba32de2f562..a21c743d3c5d200346e9a7d93554264dbda6783c 100644 +index 8bcbaafaa8979773bafe6a9af3e4b97b54039bce..ad8e766c1b8262e9130fca3bd753b0cc6628db35 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager; @@ -238,7 +238,7 @@ index 041c2d330a245826fc2fa4c1327aeadd24a44254..3697238a818aac364d62f779fe6b6224 public boolean isTrusting() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 46b3f0d26ef95eee43c68fb2829cc99a622d5852..c308558a94a7f7f6fbfeb64a5aa0a2af9d0f3f81 100644 +index 8f1b1fbfa76b8003126da7b5a8b5ce1a9cf647df..032afe5b43b44d9844bec6caabb50b753c6c4c0a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -131,6 +131,12 @@ public class Panda extends Animal { @@ -427,7 +427,7 @@ index cac2845978b9beebb4e1ed6fed3eb33a698bc545..e439f0e24851697e663f783edf643d5b public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index b185a58c0adb9a0dde014dd7fdeb3bd465feb706..94d0a8d94a210f62e4102f091c886bb7c48f8834 100644 +index ec095421e4928489a4bebfbb212f1795b57341fc..2aede66752b78036a6bd9eb7719f97766a030301 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -97,6 +97,11 @@ public class Turtle extends Animal { @@ -1099,7 +1099,7 @@ index 7db7e4ae2ad164dd622ab9b803a5e395dff08ea5..9cc44ccd584253cb16a19e7a4747ef39 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 5f1f9ecb06555f15a464efa27f06a5dbdd255c1e..4f0f7b2685696c48f2fe297ceea7a03322b8d45e 100644 +index 07b134957b0d53841f2d4462f91fcf20fb9006fd..44e33d3007f1743f3f18b37ff61af9eb5542f529 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java @@ -57,6 +57,11 @@ public class Silverfish extends Monster { @@ -1313,7 +1313,7 @@ index 9970c2c09b294e601b7cda4f1e8cbf2aed13b0dc..6236a557d2a73dff70141140f79faf85 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index be664e96a63bf6042375654e8297e4d6a54c7c8b..80827975411967c3862b69c2a74dd219707c16b7 100644 +index fb291a8a792dfd48c70d38b12b2733566ba62506..70a673f10591eaaecdafa7b7017b3120b7d1c6da 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -120,6 +120,11 @@ public class Zombie extends Monster { @@ -1328,7 +1328,7 @@ index be664e96a63bf6042375654e8297e4d6a54c7c8b..80827975411967c3862b69c2a74dd219 // Purpur end @Override -@@ -607,7 +612,7 @@ public class Zombie extends Monster { +@@ -606,7 +611,7 @@ public class Zombie extends Monster { } protected void randomizeReinforcementsChance() { diff --git a/patches/server/0022-Alternative-Keepalive-Handling.patch b/patches/server/0022-Alternative-Keepalive-Handling.patch index 032786934..30f62040a 100644 --- a/patches/server/0022-Alternative-Keepalive-Handling.patch +++ b/patches/server/0022-Alternative-Keepalive-Handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9330f5c0c6e1ff852d1446a551baee95fb41226d..8610f4d46e0512b391ebcc209366308730e654c7 100644 +index e6cb6a4776ecf5504f04b83f523be7ed4741b7d9..4fa1b94de393010e0d95b48b6f4343e864b87b31 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -260,6 +260,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -38,7 +38,7 @@ index 9330f5c0c6e1ff852d1446a551baee95fb41226d..8610f4d46e0512b391ebcc2093663087 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3632,6 +3648,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3633,6 +3649,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0065-Implement-elytra-settings.patch b/patches/server/0065-Implement-elytra-settings.patch index 26b914138..bea19e0a4 100644 --- a/patches/server/0065-Implement-elytra-settings.patch +++ b/patches/server/0065-Implement-elytra-settings.patch @@ -80,10 +80,10 @@ index 3d1ba3d3b12fe649e451b6c8a3726c6991cfe083..2b2115d218a279245f8be5e0c93a2b62 if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this); diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d005be209 100644 +index 9365f886a23a71c41091b22d46896ff18a5a0635..41bd45c0720751f348b5cf6eaecac4397a439857 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java -@@ -126,6 +126,14 @@ public class TridentItem extends Item implements Vanishable { +@@ -130,6 +130,14 @@ public class TridentItem extends Item implements Vanishable { f2 *= f6 / f5; f3 *= f6 / f5; f4 *= f6 / f5; diff --git a/patches/server/0066-Item-entity-immunities.patch b/patches/server/0066-Item-entity-immunities.patch index 299c2aa7f..4085ddc99 100644 --- a/patches/server/0066-Item-entity-immunities.patch +++ b/patches/server/0066-Item-entity-immunities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 1eb912ad97f9663bf6bd336ad739f2552b0a5c9b..3441339e1ba5efb0e25c16fa13cb65d2fbdafc42 100644 +index 163f14b4e1ca99d75e5d8e14190f7b91cb58e8f3..7880cdcaf12197f6b36777c51b2859f2463f1595 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -65,7 +65,7 @@ public class ServerEntity { @@ -14,9 +14,9 @@ index 1eb912ad97f9663bf6bd336ad739f2552b0a5c9b..3441339e1ba5efb0e25c16fa13cb65d2 // CraftBukkit start - final Set trackedPlayers; // Paper - private -> package + public final Set trackedPlayers; // Paper - private -> package // Purpur - package -> public + public boolean clearDirtyEntityData = true; // Paper public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer> consumer, Set trackedPlayers) { - this.trackedPlayers = trackedPlayers; diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java index 16a55f94bda9f959548772c8916b4dc3eb045d47..aa1c929d948cea8f6212330f922eb5f1d9b9bb97 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java diff --git a/patches/server/0070-Configurable-jockey-options.patch b/patches/server/0070-Configurable-jockey-options.patch index 61f1de09d..08217100e 100644 --- a/patches/server/0070-Configurable-jockey-options.patch +++ b/patches/server/0070-Configurable-jockey-options.patch @@ -57,7 +57,7 @@ index e41cc68649c79dd4ce7455f36112e8347e7c84e6..22daf7d11890a2e9276928ac9b242edf public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 80827975411967c3862b69c2a74dd219707c16b7..eeb01e54125cab3d0803341f21d135068924d786 100644 +index 70a673f10591eaaecdafa7b7017b3120b7d1c6da..f8b61bd18b2ae356252fa144dc39b11a9dc120ef 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -125,6 +125,18 @@ public class Zombie extends Monster { @@ -79,7 +79,7 @@ index 80827975411967c3862b69c2a74dd219707c16b7..eeb01e54125cab3d0803341f21d13506 // Purpur end @Override -@@ -546,19 +558,20 @@ public class Zombie extends Monster { +@@ -545,19 +557,20 @@ public class Zombie extends Monster { if (object instanceof Zombie.ZombieGroupData) { Zombie.ZombieGroupData entityzombie_groupdatazombie = (Zombie.ZombieGroupData) object; @@ -106,7 +106,7 @@ index 80827975411967c3862b69c2a74dd219707c16b7..eeb01e54125cab3d0803341f21d13506 Chicken entitychicken1 = (Chicken) EntityType.CHICKEN.create(this.level); entitychicken1.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F); -@@ -566,6 +579,7 @@ public class Zombie extends Monster { +@@ -565,6 +578,7 @@ public class Zombie extends Monster { entitychicken1.setChickenJockey(true); this.startRiding(entitychicken1); world.addFreshEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit diff --git a/patches/server/0182-API-for-any-mob-to-burn-daylight.patch b/patches/server/0182-API-for-any-mob-to-burn-daylight.patch index bb46d7a94..8d492fd8b 100644 --- a/patches/server/0182-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0182-API-for-any-mob-to-burn-daylight.patch @@ -275,7 +275,7 @@ index 6b7baf977972b624c5745820d5c3a4375c6854b0..f032a45969d6835a36e2c7598425bc09 // Paper end private static enum AttackPhase { diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311..da2f736bd162a1e2e39473a963ef20bcbb31aa2a 100644 +index 27b2c48b7c8d82f3971bb6b456c1b1c5fb0266c8..b687f30720a92485d36faec8dcd865ee6cfc6ab9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -94,11 +94,12 @@ public class Zombie extends Monster { @@ -292,7 +292,7 @@ index cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311..da2f736bd162a1e2e39473a963ef20bc } public Zombie(Level world) { -@@ -295,30 +296,7 @@ public class Zombie extends Monster { +@@ -294,30 +295,7 @@ public class Zombie extends Monster { @Override public void aiStep() { @@ -324,7 +324,7 @@ index cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311..da2f736bd162a1e2e39473a963ef20bc super.aiStep(); } -@@ -356,6 +334,7 @@ public class Zombie extends Monster { +@@ -355,6 +333,7 @@ public class Zombie extends Monster { } @@ -332,7 +332,7 @@ index cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311..da2f736bd162a1e2e39473a963ef20bc public boolean isSunSensitive() { return this.shouldBurnInDay; // Paper - use api value instead } -@@ -485,7 +464,7 @@ public class Zombie extends Monster { +@@ -484,7 +463,7 @@ public class Zombie extends Monster { nbt.putBoolean("CanBreakDoors", this.canBreakDoors()); nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1); nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1); @@ -341,7 +341,7 @@ index cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311..da2f736bd162a1e2e39473a963ef20bc } @Override -@@ -499,7 +478,7 @@ public class Zombie extends Monster { +@@ -498,7 +477,7 @@ public class Zombie extends Monster { } // Paper start if (nbt.contains("Paper.ShouldBurnInDay")) { diff --git a/patches/server/0230-Halloween-options-and-optimizations.patch b/patches/server/0230-Halloween-options-and-optimizations.patch index e73acc159..3c19ad4d8 100644 --- a/patches/server/0230-Halloween-options-and-optimizations.patch +++ b/patches/server/0230-Halloween-options-and-optimizations.patch @@ -43,10 +43,10 @@ index 4505b61f10c3aad3d0ab144cea5ef6efc6ad7357..e542407894f58fb8c0339a7a6d2e7b2c this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index da2f736bd162a1e2e39473a963ef20bcbb31aa2a..38014afb40ac5781f6724a942d593aee1f060ad8 100644 +index b687f30720a92485d36faec8dcd865ee6cfc6ab9..505a179737ca80cc2d0e3e8e228cc46024061bc9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -586,11 +586,7 @@ public class Zombie extends Monster { +@@ -585,11 +585,7 @@ public class Zombie extends Monster { } if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) { diff --git a/patches/server/0237-Signs-allow-color-codes.patch b/patches/server/0237-Signs-allow-color-codes.patch index 8a9203f8d..cecdf3b95 100644 --- a/patches/server/0237-Signs-allow-color-codes.patch +++ b/patches/server/0237-Signs-allow-color-codes.patch @@ -17,10 +17,10 @@ index 8639a9772df6a3064b018f1009f95892e646993e..8c83b0fc6d6db5e145ec4c1bcd035e8b this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6e7b0d78a602e03c951bf14ed0b694b4b7ff203d..042434dd91c32f0d89274c3d8eaae267c262e203 100644 +index a6ecd212cffa89025dce28d2892fd838a13ec192..0ef0bfaae98a456c3e62f56e81e8518c8d201935 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3656,11 +3656,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3657,11 +3657,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic for (int i = 0; i < signText.size(); ++i) { FilteredText filteredtext = (FilteredText) signText.get(i); diff --git a/patches/server/0303-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0303-Add-an-option-to-fix-MC-3304-projectile-looting.patch index a83be44c1..e40e7b5de 100644 --- a/patches/server/0303-Add-an-option-to-fix-MC-3304-projectile-looting.patch +++ b/patches/server/0303-Add-an-option-to-fix-MC-3304-projectile-looting.patch @@ -67,7 +67,7 @@ index 2d30300de78de957358cfddac12294b308062e2a..37cbd0d95f3232ed399c6ef19f714c54 } diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 086f746cc632a90c67a6c30ea9197c5bb5485b22..ccf1ae6d7b8bf1177526c95a62814f507221da58 100644 +index 60512d08a45670a164a9b93191aafa40b2c2287c..d35432087c70ce66b74d1e27df19f462f22b1aa1 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java @@ -82,6 +82,14 @@ public class TridentItem extends Item implements Vanishable { @@ -83,8 +83,8 @@ index 086f746cc632a90c67a6c30ea9197c5bb5485b22..ccf1ae6d7b8bf1177526c95a62814f50 + // Purpur end + // CraftBukkit start - if (!world.addFreshEntity(entitythrowntrident)) { - if (entityhuman instanceof net.minecraft.server.level.ServerPlayer) { + // Paper start + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) entitythrowntrident.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..15d8e9261a89da30529ac347462c520920ca4e7d 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java