diff --git a/patches/api/0360-Add-EntityPortalReadyEvent.patch b/patches/api/0360-Add-EntityPortalReadyEvent.patch index b9321a8e0d..af86ef0a8f 100644 --- a/patches/api/0360-Add-EntityPortalReadyEvent.patch +++ b/patches/api/0360-Add-EntityPortalReadyEvent.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/io/papermc/paper/event/entity/EntityPortalReadyEvent.java b/src/main/java/io/papermc/paper/event/entity/EntityPortalReadyEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..3450735c86a8af45491c010a796262ae892f14dc +index 0000000000000000000000000000000000000000..a3242498c1c44cee3eec708cbca5b776ceb84c3e --- /dev/null +++ b/src/main/java/io/papermc/paper/event/entity/EntityPortalReadyEvent.java -@@ -0,0 +1,94 @@ +@@ -0,0 +1,96 @@ +package io.papermc.paper.event.entity; + +import org.bukkit.PortalType; @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..3450735c86a8af45491c010a796262ae + private static final HandlerList HANDLER_LIST = new HandlerList(); + + private final PortalType portalType; -+ private World targetWorld; ++ private final World targetWorld; + + private boolean cancelled; + @@ -71,9 +71,11 @@ index 0000000000000000000000000000000000000000..3450735c86a8af45491c010a796262ae + * or {@link EntityPortalEvent}. + * + * @param targetWorld the world ++ * @deprecated changing the target world has no effect + */ ++ @Deprecated(forRemoval = true, since = "1.21") + public void setTargetWorld(final @Nullable World targetWorld) { -+ this.targetWorld = targetWorld; ++ // this.targetWorld = targetWorld; + } + + /** diff --git a/patches/unapplied/server/0685-Fix-Entity-Position-Desync.patch b/patches/removed/1.21/0685-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/unapplied/server/0685-Fix-Entity-Position-Desync.patch rename to patches/removed/1.21/0685-Fix-Entity-Position-Desync.patch diff --git a/patches/unapplied/server/0651-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0644-Forward-CraftEntity-in-teleport-command.patch similarity index 50% rename from patches/unapplied/server/0651-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0644-Forward-CraftEntity-in-teleport-command.patch index 36fce551ed..0471bae893 100644 --- a/patches/unapplied/server/0651-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0644-Forward-CraftEntity-in-teleport-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7966d45adcbc239a506ab4aa2923a6df0dc36c03..1632b2231e20901ce8498f3a0442e9ea54fcc068 100644 +index 4ec6a43b7f16560de948974d60ad8ab1dcbb4696..038c22d09818c9a8310a8457d87b7e61119bb0dd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3284,6 +3284,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3355,6 +3355,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public void restoreFrom(Entity original) { @@ -22,18 +22,14 @@ index 7966d45adcbc239a506ab4aa2923a6df0dc36c03..1632b2231e20901ce8498f3a0442e9ea CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag()); nbttagcompound.remove("Dimension"); -@@ -3374,10 +3381,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - } +@@ -3441,8 +3448,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + entity2.restoreFrom(this); + this.removeAfterChangingDimensions(); + // CraftBukkit start - Forward the CraftEntity to the new entity +- this.getBukkitEntity().setHandle(entity2); +- entity2.bukkitEntity = this.getBukkitEntity(); ++ // this.getBukkitEntity().setHandle(entity2); // Paper - forward CraftEntity in teleport command; moved to Entity#restoreFrom ++ // entity2.bukkitEntity = this.getBukkitEntity(); + // CraftBukkit end } - // CraftBukkit end -- // CraftBukkit start - Forward the CraftEntity to the new entity -- this.getBukkitEntity().setHandle(entity); -- entity.bukkitEntity = this.getBukkitEntity(); -- // CraftBukkit end -+ // // CraftBukkit start - Forward the CraftEntity to the new entity // Paper - Forward CraftEntity in teleport command; moved to Entity#restoreFrom -+ // this.getBukkitEntity().setHandle(entity); -+ // entity.bukkitEntity = this.getBukkitEntity(); -+ // // CraftBukkit end - } - this.removeAfterChangingDimensions(); diff --git a/patches/unapplied/server/0652-Improve-scoreboard-entries.patch b/patches/server/0645-Improve-scoreboard-entries.patch similarity index 100% rename from patches/unapplied/server/0652-Improve-scoreboard-entries.patch rename to patches/server/0645-Improve-scoreboard-entries.patch diff --git a/patches/unapplied/server/0653-Entity-powdered-snow-API.patch b/patches/server/0646-Entity-powdered-snow-API.patch similarity index 91% rename from patches/unapplied/server/0653-Entity-powdered-snow-API.patch rename to patches/server/0646-Entity-powdered-snow-API.patch index 84af920e2a..adef89850e 100644 --- a/patches/unapplied/server/0653-Entity-powdered-snow-API.patch +++ b/patches/server/0646-Entity-powdered-snow-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Entity powdered snow API public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a61638bc8200f6aa25d9c3254aea6c0cd38bcbf1..97716f0a20fbc5f7048256ad1942e8f56e9fb72b 100644 +index 6f9286e65f7ac730b808ddf9b52c344f03b4d778..d2648218d41439c4048901f2dbd59fe5eef57495 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1080,6 +1080,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1097,6 +1097,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } // Paper end - raw entity serialization API diff --git a/patches/unapplied/server/0654-Add-API-for-item-entity-health.patch b/patches/server/0647-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/unapplied/server/0654-Add-API-for-item-entity-health.patch rename to patches/server/0647-Add-API-for-item-entity-health.patch diff --git a/patches/unapplied/server/0655-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0648-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/unapplied/server/0655-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0648-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/unapplied/server/0656-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0649-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/unapplied/server/0656-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0649-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/unapplied/server/0657-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0650-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/unapplied/server/0657-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0650-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/unapplied/server/0658-Bucketable-API.patch b/patches/server/0651-Bucketable-API.patch similarity index 100% rename from patches/unapplied/server/0658-Bucketable-API.patch rename to patches/server/0651-Bucketable-API.patch diff --git a/patches/unapplied/server/0659-Validate-usernames.patch b/patches/server/0652-Validate-usernames.patch similarity index 91% rename from patches/unapplied/server/0659-Validate-usernames.patch rename to patches/server/0652-Validate-usernames.patch index d3b04f3950..8ba85fd205 100644 --- a/patches/unapplied/server/0659-Validate-usernames.patch +++ b/patches/server/0652-Validate-usernames.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Validate usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index b968026728b8b4e549eed9fa9b43919c6c19eb7a..9bcded0466f3b10fafd709edc44c60f85cb48b7f 100644 +index baedae23865ea80c6546d1f6f439e1d7712258b9..e9cd90b6bb2f57d605323add43f12962bd7cb843 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -83,6 +83,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -85,6 +85,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, private final String serverId; private final boolean transferred; private ServerPlayer player; // CraftBukkit @@ -16,7 +16,7 @@ index b968026728b8b4e549eed9fa9b43919c6c19eb7a..9bcded0466f3b10fafd709edc44c60f8 public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection, boolean transferred) { this.state = ServerLoginPacketListenerImpl.State.HELLO; -@@ -164,7 +165,13 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -166,7 +167,13 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void handleHello(ServerboundHelloPacket packet) { Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]); @@ -32,10 +32,10 @@ index b968026728b8b4e549eed9fa9b43919c6c19eb7a..9bcded0466f3b10fafd709edc44c60f8 GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d7bbdcc97745246718c92c9aba56d9f926897975..7406784899ba5f3575adf1ffe5e5d85ab430a841 100644 +index 1ba8fa300b95ad5709e35068e8a372b627d132f9..2944ec6fd810957e6c01cf914b48d58235a1822c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -676,7 +676,7 @@ public abstract class PlayerList { +@@ -670,7 +670,7 @@ public abstract class PlayerList { for (int i = 0; i < this.players.size(); ++i) { entityplayer = (ServerPlayer) this.players.get(i); diff --git a/patches/unapplied/server/0660-Make-water-animal-spawn-height-configurable.patch b/patches/server/0653-Make-water-animal-spawn-height-configurable.patch similarity index 87% rename from patches/unapplied/server/0660-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0653-Make-water-animal-spawn-height-configurable.patch index 36a83d9116..14f75d9b89 100644 --- a/patches/unapplied/server/0660-Make-water-animal-spawn-height-configurable.patch +++ b/patches/server/0653-Make-water-animal-spawn-height-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make water animal spawn height configurable diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java -index f74cfa008886e0b74b850982d60ceb8879243c36..6f22705072fecbe91196e4966fca2eeec060f120 100644 +index ad86b129ffdb9c6358f451fbcc0ae000eb81141d..c9cabb061ebc9172647304431cc3fb2593dd47ba 100644 --- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java -@@ -68,6 +68,10 @@ public abstract class WaterAnimal extends PathfinderMob { +@@ -67,6 +67,10 @@ public abstract class WaterAnimal extends PathfinderMob { ) { int i = world.getSeaLevel(); int j = i - 13; diff --git a/patches/unapplied/server/0661-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0654-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 95% rename from patches/unapplied/server/0661-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0654-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index a86b64f824..5acd477ff4 100644 --- a/patches/unapplied/server/0661-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0654-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index cdbdacee826c424177096ee78427eaf80131b5fd..f295eaf2dced5bf294eb094f6d6110da826f053f 100644 +index ee212ed5538357830ea8b69da650ab67d67634bb..22f8e49536658fabe6136dbeec6b77eaf4ae5ee8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -605,7 +605,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver)); LevelStem worlddimension = (LevelStem) dimensions.get(dimensionKey); @@ -18,10 +18,10 @@ index cdbdacee826c424177096ee78427eaf80131b5fd..f295eaf2dced5bf294eb094f6d6110da biomeProvider = gen.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a1c108bd8a11f63c0973e2d26186e18f5c3ba69e..f61ea45fd39b2641dbab5e4a7e35c46c1639367d 100644 +index ad5dc323e03dfae8670ebf9fad629e76c2106af7..7707ecca5318e35533de93d4451cb62ba9b425b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1294,7 +1294,7 @@ public final class CraftServer implements Server { +@@ -1297,7 +1297,7 @@ public final class CraftServer implements Server { List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); LevelStem worlddimension = iregistry.get(actualDimension); @@ -31,7 +31,7 @@ index a1c108bd8a11f63c0973e2d26186e18f5c3ba69e..f61ea45fd39b2641dbab5e4a7e35c46c biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index fbd5df61e5cfd67991dedb7bbba4a16ff16fa49b..a5121eb7fa8fccf7e742beea285c2f741ece513d 100644 +index 6c5865c4c29e5470239dcabdfbb54057d05c80c7..8d41492cd6305331deca3748eb24d689f23e280b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -212,6 +212,29 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0662-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0655-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/unapplied/server/0662-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0655-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/unapplied/server/0663-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0656-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/unapplied/server/0663-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0656-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/unapplied/server/0664-Multiple-Entries-with-Scoreboards.patch b/patches/server/0657-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/unapplied/server/0664-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0657-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/unapplied/server/0665-Reset-placed-block-on-exception.patch b/patches/server/0658-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/unapplied/server/0665-Reset-placed-block-on-exception.patch rename to patches/server/0658-Reset-placed-block-on-exception.patch diff --git a/patches/unapplied/server/0666-Add-configurable-height-for-slime-spawn.patch b/patches/server/0659-Add-configurable-height-for-slime-spawn.patch similarity index 92% rename from patches/unapplied/server/0666-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0659-Add-configurable-height-for-slime-spawn.patch index 04458eb176..5ed7f1549d 100644 --- a/patches/unapplied/server/0666-Add-configurable-height-for-slime-spawn.patch +++ b/patches/server/0659-Add-configurable-height-for-slime-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add configurable height for slime spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index b32213c5a3a1ecaf602cf34bed44c537521c2846..f223e78eb1204bbf5f2de38a7ce5b663800f7dc4 100644 +index b54c30ba73b6ab069c0c7c1cd2b193090da79667..adebb66e550f805f444bec22e9a4dd575a642b43 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java -@@ -340,7 +340,11 @@ public class Slime extends Mob implements Enemy { +@@ -348,7 +348,11 @@ public class Slime extends Mob implements Enemy { return checkMobSpawnRules(type, world, spawnReason, pos, random); } @@ -21,7 +21,7 @@ index b32213c5a3a1ecaf602cf34bed44c537521c2846..f223e78eb1204bbf5f2de38a7ce5b663 return checkMobSpawnRules(type, world, spawnReason, pos, random); } -@@ -351,7 +355,10 @@ public class Slime extends Mob implements Enemy { +@@ -359,7 +363,10 @@ public class Slime extends Mob implements Enemy { ChunkPos chunkcoordintpair = new ChunkPos(pos); boolean flag = world.getMinecraftWorld().paperConfig().entities.spawning.allChunksAreSlimeChunks || WorldgenRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((WorldGenLevel) world).getSeed(), world.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot // Paper diff --git a/patches/unapplied/server/0667-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0660-Fix-xp-reward-for-baby-zombies.patch similarity index 78% rename from patches/unapplied/server/0667-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0660-Fix-xp-reward-for-baby-zombies.patch index 67fe48ec26..a4fec4e0f2 100644 --- a/patches/unapplied/server/0667-Fix-xp-reward-for-baby-zombies.patch +++ b/patches/server/0660-Fix-xp-reward-for-baby-zombies.patch @@ -9,21 +9,21 @@ so this resets it after each call to Zombie#getExperienceReward 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 8f8bba0e6690443823c8e2301db82cae3eb66551..e42dfc62bb179be1ab01b0096c05c6549d38abbc 100644 +index fd304e7d8305877d56de7a38b8664e5a70bf0c33..2280004638fd19ed018cb3e77d53a018b34ec516 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -172,11 +172,16 @@ public class Zombie extends Monster { +@@ -176,11 +176,16 @@ public class Zombie extends Monster { @Override - public int getExperienceReward() { + protected int getBaseExperienceReward() { + final int previousReward = this.xpReward; // Paper - store previous value to reset after calculating XP reward if (this.isBaby()) { this.xpReward = (int) ((double) this.xpReward * 2.5D); } -- return super.getExperienceReward(); +- return super.getBaseExperienceReward(); + // Paper start - store previous value to reset after calculating XP reward -+ int reward = super.getExperienceReward(); ++ int reward = super.getBaseExperienceReward(); + this.xpReward = previousReward; + return reward; + // Paper end - store previous value to reset after calculating XP reward diff --git a/patches/unapplied/server/0668-Multi-Block-Change-API-Implementation.patch b/patches/server/0661-Multi-Block-Change-API-Implementation.patch similarity index 95% rename from patches/unapplied/server/0668-Multi-Block-Change-API-Implementation.patch rename to patches/server/0661-Multi-Block-Change-API-Implementation.patch index a6c9ee19af..5894de4690 100644 --- a/patches/unapplied/server/0668-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0661-Multi-Block-Change-API-Implementation.patch @@ -24,10 +24,10 @@ index 926ff9be3d9e3f5d620e4c7ccb22b9f64865ff8c..1a37654aff9a9c86c9f7af10a1cf7213 buf.writeLong(this.sectionPos.asLong()); buf.writeVarInt(this.positions.length); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 634da85870b31a9fc09d53f5670239e18bcb3d47..6793acbbae09a9bc39f59c029f6b02182ec33a92 100644 +index 9c1205b6b3cae33e735e5d64735935e8396db7d8..7716d990ee193e920fc14e52404afdeab12c62b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -928,6 +928,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -930,6 +930,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/unapplied/server/0669-Fix-NotePlayEvent.patch b/patches/server/0662-Fix-NotePlayEvent.patch similarity index 100% rename from patches/unapplied/server/0669-Fix-NotePlayEvent.patch rename to patches/server/0662-Fix-NotePlayEvent.patch diff --git a/patches/unapplied/server/0670-Freeze-Tick-Lock-API.patch b/patches/server/0663-Freeze-Tick-Lock-API.patch similarity index 83% rename from patches/unapplied/server/0670-Freeze-Tick-Lock-API.patch rename to patches/server/0663-Freeze-Tick-Lock-API.patch index 14da0abad5..7d9fe3a50a 100644 --- a/patches/unapplied/server/0670-Freeze-Tick-Lock-API.patch +++ b/patches/server/0663-Freeze-Tick-Lock-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1632b2231e20901ce8498f3a0442e9ea54fcc068..6025b45d1c247941d83cd9c2d516c14a70f64bfd 100644 +index 038c22d09818c9a8310a8457d87b7e61119bb0dd..ad049687cd6c6c98bd08b512c6233b725c6ad9ab 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -406,6 +406,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -412,6 +412,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private org.bukkit.util.Vector origin; @javax.annotation.Nullable private UUID originWorld; @@ -16,7 +16,7 @@ index 1632b2231e20901ce8498f3a0442e9ea54fcc068..6025b45d1c247941d83cd9c2d516c14a public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -776,7 +777,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -752,7 +753,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setRemainingFireTicks(this.remainingFireTicks - 1); } @@ -25,7 +25,7 @@ index 1632b2231e20901ce8498f3a0442e9ea54fcc068..6025b45d1c247941d83cd9c2d516c14a this.setTicksFrozen(0); this.level().levelEvent((Player) null, 1009, this.blockPosition, 1); } -@@ -2273,6 +2274,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2314,6 +2315,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (fromNetherPortal) { nbttagcompound.putBoolean("Paper.FromNetherPortal", true); } @@ -35,7 +35,7 @@ index 1632b2231e20901ce8498f3a0442e9ea54fcc068..6025b45d1c247941d83cd9c2d516c14a // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2417,6 +2421,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2458,6 +2462,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (spawnReason == null) { spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; } @@ -46,10 +46,10 @@ index 1632b2231e20901ce8498f3a0442e9ea54fcc068..6025b45d1c247941d83cd9c2d516c14a } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0fe6b9f4376d2b852f6f23e31848cd9236577bdf..8aae4dacb85f67ea5f67e1143f2094851d40e85e 100644 +index 65ab2a1e47d9f338dbb13062d25f6c9a3d5cc7ff..60394f1b0e727d6dec4af37b452a6312eb3ae375 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3448,7 +3448,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3468,7 +3468,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getProfiler().pop(); this.level().getProfiler().push("freezing"); @@ -59,10 +59,10 @@ index 0fe6b9f4376d2b852f6f23e31848cd9236577bdf..8aae4dacb85f67ea5f67e1143f209485 if (this.isInPowderSnow && this.canFreeze()) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 97716f0a20fbc5f7048256ad1942e8f56e9fb72b..113ca1d16cb7650d72f488cdaa9e670d51dc85f0 100644 +index d2648218d41439c4048901f2dbd59fe5eef57495..47f24e390efd8eb4cb7f62b5203825f4160772b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -321,6 +321,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -323,6 +323,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().isFullyFrozen(); } diff --git a/patches/unapplied/server/0671-More-PotionEffectType-API.patch b/patches/server/0664-More-PotionEffectType-API.patch similarity index 100% rename from patches/unapplied/server/0671-More-PotionEffectType-API.patch rename to patches/server/0664-More-PotionEffectType-API.patch diff --git a/patches/unapplied/server/0672-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0665-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 92% rename from patches/unapplied/server/0672-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0665-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch index b19bb65d35..82d25835a6 100644 --- a/patches/unapplied/server/0672-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch +++ b/patches/server/0665-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use a CHM for StructureTemplate.Pallete cache fixes a CME due to this collection being shared across threads diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index 05ff5d2fc689af238003a381168bf64b51f0d65e..bd401b38239fb7e510f82f458f9336b7da372da0 100644 +index 02b493435509f7a84a2c26050ca0c732ecf00ca0..33564e62e3181d28b18a957e28b8ec5152d8339f 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -859,7 +859,7 @@ public class StructureTemplate { diff --git a/patches/unapplied/server/0673-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0666-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 97% rename from patches/unapplied/server/0673-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0666-API-for-creating-command-sender-which-forwards-feedb.patch index 801e72462c..0ba22a1ffa 100644 --- a/patches/unapplied/server/0673-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0666-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f61ea45fd39b2641dbab5e4a7e35c46c1639367d..4e6a3cb16a7f42e30ee210235f686f416d4c916d 100644 +index 7707ecca5318e35533de93d4451cb62ba9b425b0..2e9f17fec09e060a2029a896d5d961a93a53118a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2148,6 +2148,13 @@ public final class CraftServer implements Server { +@@ -2151,6 +2151,13 @@ public final class CraftServer implements Server { return this.console.console; } diff --git a/patches/unapplied/server/0674-Add-missing-structure-set-seed-configs.patch b/patches/server/0667-Add-missing-structure-set-seed-configs.patch similarity index 99% rename from patches/unapplied/server/0674-Add-missing-structure-set-seed-configs.patch rename to patches/server/0667-Add-missing-structure-set-seed-configs.patch index 6e9e7c21b8..d97d88a95d 100644 --- a/patches/unapplied/server/0674-Add-missing-structure-set-seed-configs.patch +++ b/patches/server/0667-Add-missing-structure-set-seed-configs.patch @@ -20,10 +20,10 @@ seeds/salts to the frequency reducer which has a similar effect. Co-authored-by: William Blake Galbreath diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 748caca458eb4eec6ece22d8362e36de252f07dd..c4972e5767488878f7929226258c41c1cc30a47f 100644 +index c5dd3aac54aa5936da4bd9f54f0e76ecf8141d27..102de569415ef011dacdca9a6ea8134d0ef62454 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -@@ -574,7 +574,7 @@ public abstract class ChunkGenerator { +@@ -573,7 +573,7 @@ public abstract class ChunkGenerator { } } diff --git a/patches/unapplied/server/0675-Implement-regenerateChunk.patch b/patches/server/0668-Implement-regenerateChunk.patch similarity index 98% rename from patches/unapplied/server/0675-Implement-regenerateChunk.patch rename to patches/server/0668-Implement-regenerateChunk.patch index 61257215bf..bb3ae478ae 100644 --- a/patches/unapplied/server/0675-Implement-regenerateChunk.patch +++ b/patches/server/0668-Implement-regenerateChunk.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a5121eb7fa8fccf7e742beea285c2f741ece513d..7e9344fdafb01030061458c55ccf6836bf643da3 100644 +index 8d41492cd6305331deca3748eb24d689f23e280b..365a23218c57f9685c79b520d7721e5a49b7771c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -151,6 +151,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/unapplied/server/0676-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0669-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 89% rename from patches/unapplied/server/0676-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0669-Fix-cancelled-powdered-snow-bucket-placement.patch index d0917dc1c2..d4169a6e7a 100644 --- a/patches/unapplied/server/0676-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0669-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -8,10 +8,10 @@ snow bucket didn't revert grass that became snowy because of the placement. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 1b062edcc04af4c500f38c1664b5cee25e265f3c..aa0a5b392942e03123b1dbd68ec8e9e1321457e9 100644 +index ebc5f2e8d59da4bec25ff156ec95fe49366be59c..823146a66de8ce13e6dc6faf2fd135480bd51c3a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -401,7 +401,7 @@ public final class ItemStack implements DataComponentHolder { +@@ -422,7 +422,7 @@ public final class ItemStack implements DataComponentHolder { int oldCount = this.getCount(); ServerLevel world = (ServerLevel) context.getLevel(); @@ -20,7 +20,7 @@ index 1b062edcc04af4c500f38c1664b5cee25e265f3c..aa0a5b392942e03123b1dbd68ec8e9e1 world.captureBlockStates = true; // special case bonemeal if (item == Items.BONE_MEAL) { -@@ -461,7 +461,7 @@ public final class ItemStack implements DataComponentHolder { +@@ -482,7 +482,7 @@ public final class ItemStack implements DataComponentHolder { world.capturedBlockStates.clear(); if (blocks.size() > 1) { placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ()); diff --git a/patches/unapplied/server/0677-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0670-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 86% rename from patches/unapplied/server/0677-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0670-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 6965d79ff3..7a5076f3ce 100644 --- a/patches/unapplied/server/0677-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0670-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4e6a3cb16a7f42e30ee210235f686f416d4c916d..84760f00681e5493106daeec21aeef260dc11fb2 100644 +index 2e9f17fec09e060a2029a896d5d961a93a53118a..01b37bc15d525f4a5ed4f9c45997c0029c032b3b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2325,6 +2325,8 @@ public final class CraftServer implements Server { +@@ -2328,6 +2328,8 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { // Paper start - Add mobcaps commands diff --git a/patches/unapplied/server/0678-Add-GameEvent-tags.patch b/patches/server/0671-Add-GameEvent-tags.patch similarity index 95% rename from patches/unapplied/server/0678-Add-GameEvent-tags.patch rename to patches/server/0671-Add-GameEvent-tags.patch index 12f3f71b9b..f236b77d42 100644 --- a/patches/unapplied/server/0678-Add-GameEvent-tags.patch +++ b/patches/server/0671-Add-GameEvent-tags.patch @@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 84760f00681e5493106daeec21aeef260dc11fb2..b6281c7dfe455b19d1016ea1d60de981228fb325 100644 +index 01b37bc15d525f4a5ed4f9c45997c0029c032b3b..59bbc8dc5e5eb6cb87d15324bfad0a4014e47105 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2753,6 +2753,15 @@ public final class CraftServer implements Server { +@@ -2761,6 +2761,15 @@ public final class CraftServer implements Server { return (org.bukkit.Tag) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey); } } @@ -65,7 +65,7 @@ index 84760f00681e5493106daeec21aeef260dc11fb2..b6281c7dfe455b19d1016ea1d60de981 default -> throw new IllegalArgumentException(); } -@@ -2785,6 +2794,13 @@ public final class CraftServer implements Server { +@@ -2793,6 +2802,13 @@ public final class CraftServer implements Server { net.minecraft.core.Registry> entityTags = BuiltInRegistries.ENTITY_TYPE; return entityTags.getTags().map(pair -> (org.bukkit.Tag) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList()); } diff --git a/patches/unapplied/server/0679-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0672-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 87% rename from patches/unapplied/server/0679-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0672-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 4490dcca94..351cec2218 100644 --- a/patches/unapplied/server/0679-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0672-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,10 +9,10 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f295eaf2dced5bf294eb094f6d6110da826f053f..9f279ba3b3ed8a6cf4f79a41a1513b30d7ea9ccc 100644 +index 22f8e49536658fabe6136dbeec6b77eaf4ae5ee8..e5017b66b6b8b5f17fc49f0fbc5d342241cd9cad 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1343,6 +1343,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, BlockPos pos, BlockState state) { super(type, pos, state); -@@ -50,8 +51,16 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList - .resultOrPartial(LOGGER::error) +@@ -52,8 +53,16 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList + .resultOrPartial(string -> LOGGER.error("Failed to parse vibration listener for Sculk Sensor: '{}'", string)) .ifPresent(listener -> this.vibrationData = listener); } + // Paper start - Configurable sculk sensor listener range @@ -60,9 +60,9 @@ index afef108d11b4ed9ad9ce6069dd0d549720f3cb27..0c25d8b107b95e36e25f48dd82321b09 @Override protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { super.saveAdditional(nbt, registryLookup); -@@ -60,7 +69,13 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList - .encodeStart(NbtOps.INSTANCE, this.vibrationData) - .resultOrPartial(LOGGER::error) +@@ -63,7 +72,13 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList + .encodeStart(registryOps, this.vibrationData) + .resultOrPartial(string -> LOGGER.error("Failed to encode vibration listener for Sculk Sensor: '{}'", string)) .ifPresent(listenerNbt -> nbt.put("listener", listenerNbt)); + this.saveRangeOverride(nbt); // Paper - Configurable sculk sensor listener range + } @@ -74,7 +74,7 @@ index afef108d11b4ed9ad9ce6069dd0d549720f3cb27..0c25d8b107b95e36e25f48dd82321b09 @Override public VibrationSystem.Data getVibrationData() { -@@ -97,6 +112,7 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList +@@ -100,6 +115,7 @@ public class SculkSensorBlockEntity extends BlockEntity implements GameEventList @Override public int getListenerRadius() { diff --git a/patches/unapplied/server/0682-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0675-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/unapplied/server/0682-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0675-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/unapplied/server/0683-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0676-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 94% rename from patches/unapplied/server/0683-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0676-Option-to-have-default-CustomSpawners-in-custom-worl.patch index 122538dc8d..eed2fe11bf 100644 --- a/patches/unapplied/server/0683-Option-to-have-default-CustomSpawners-in-custom-worl.patch +++ b/patches/server/0676-Option-to-have-default-CustomSpawners-in-custom-worl.patch @@ -10,10 +10,10 @@ just looking at the LevelStem key, look at the DimensionType key which is one level below that. Defaults to off to keep vanilla behavior. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9f279ba3b3ed8a6cf4f79a41a1513b30d7ea9ccc..235886ef53d259622ee920fc70d089279d933f29 100644 +index e5017b66b6b8b5f17fc49f0fbc5d342241cd9cad..f979bfd78e2d19b525e973be0ffef5bda0068c4b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -625,7 +625,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop containers = new ArrayList<>(); private final List> potionMixes = new ArrayList<>(); diff --git a/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java -index 3ebfd564d4bbf00da5919e966f3d047285845640..887957ce1ddc2f32569405642f35df468c08271f 100644 +index c8f9972ad1c2330908cc840d426f29c20b242ca8..a2fafef89d5354e2cb02f5672810909950a57777 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java -@@ -311,12 +311,12 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements +@@ -315,12 +315,12 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements @Override public boolean canPlaceItem(int slot, ItemStack stack) { @@ -282,10 +282,10 @@ index 3ebfd564d4bbf00da5919e966f3d047285845640..887957ce1ddc2f32569405642f35df46 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4534e1398cf90ef0f697fc327e9fa010313d9cb7..0990c02fb8826f47a1f12617042f71790248e7b1 100644 +index 7d63eaff7fb788b5b5052fe24a1f14c9542bcce3..89163d43fcf16c39721da9925beb8a7a23daf291 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -306,6 +306,7 @@ public final class CraftServer implements Server { +@@ -308,6 +308,7 @@ public final class CraftServer implements Server { private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper public static Exception excessiveVelEx; // Paper - Velocity warnings private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper @@ -293,7 +293,7 @@ index 4534e1398cf90ef0f697fc327e9fa010313d9cb7..0990c02fb8826f47a1f12617042f7179 static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); -@@ -388,6 +389,7 @@ public final class CraftServer implements Server { +@@ -391,6 +392,7 @@ public final class CraftServer implements Server { if (this.configuration.getBoolean("settings.use-map-color-cache")) { MapPalette.setMapColorCache(new CraftMapColorCache(this.logger)); } @@ -301,7 +301,7 @@ index 4534e1398cf90ef0f697fc327e9fa010313d9cb7..0990c02fb8826f47a1f12617042f7179 datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper } -@@ -3116,5 +3118,9 @@ public final class CraftServer implements Server { +@@ -3124,5 +3126,9 @@ public final class CraftServer implements Server { return datapackManager; } diff --git a/patches/unapplied/server/0687-Force-close-world-loading-screen.patch b/patches/server/0679-Force-close-world-loading-screen.patch similarity index 91% rename from patches/unapplied/server/0687-Force-close-world-loading-screen.patch rename to patches/server/0679-Force-close-world-loading-screen.patch index a90bc669b4..5cfd6fbb41 100644 --- a/patches/unapplied/server/0687-Force-close-world-loading-screen.patch +++ b/patches/server/0679-Force-close-world-loading-screen.patch @@ -10,11 +10,11 @@ so we do not need that. The client only needs the chunk it is currently in to be loaded to close the loading screen, so we just send an empty one. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 7406784899ba5f3575adf1ffe5e5d85ab430a841..9fc053e2f6f3bbd9c17fda5679322a0fb403b7fe 100644 +index 2944ec6fd810957e6c01cf914b48d58235a1822c..11ac1a4e2cc276b9817014b8bb6a454e282d6258 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -400,6 +400,16 @@ public abstract class PlayerList { - } +@@ -394,6 +394,16 @@ public abstract class PlayerList { + this.sendActivePlayerEffects(player); // Paper start - Fire PlayerJoinEvent when Player is actually ready; move vehicle into method so it can be called above - short circuit around that code this.onPlayerJoinFinish(player, worldserver1, s1); + // Paper start - Send empty chunk, so players aren't stuck in the world loading screen with our chunk system not sending chunks when dead diff --git a/patches/unapplied/server/0688-Fix-falling-block-spawn-methods.patch b/patches/server/0680-Fix-falling-block-spawn-methods.patch similarity index 94% rename from patches/unapplied/server/0688-Fix-falling-block-spawn-methods.patch rename to patches/server/0680-Fix-falling-block-spawn-methods.patch index 07e93db950..dca2e62e92 100644 --- a/patches/unapplied/server/0688-Fix-falling-block-spawn-methods.patch +++ b/patches/server/0680-Fix-falling-block-spawn-methods.patch @@ -11,7 +11,7 @@ Restores the API behavior from previous versions of the server public net.minecraft.world.entity.item.FallingBlockEntity (Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 7e9344fdafb01030061458c55ccf6836bf643da3..a9106f4777d05928d432e14e4998fd06df5a0786 100644 +index 365a23218c57f9685c79b520d7721e5a49b7771c..339c2d844126b287adf613a5be1b90f2056dabd9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1450,7 +1450,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -43,10 +43,10 @@ index 7e9344fdafb01030061458c55ccf6836bf643da3..a9106f4777d05928d432e14e4998fd06 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java -index abcfb3accb715a5a041de4b798cf3582d1fde325..7ba6302ecb72fa6e523054e7e3223d79eedf6589 100644 +index 481f0c62fcd4435d655cfe2f94f46262b24a7144..37527713b0afa6db19eefd57aaffcb2fe3544ce6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java -@@ -386,7 +386,7 @@ public final class CraftEntityTypes { +@@ -387,7 +387,7 @@ public final class CraftEntityTypes { register(new EntityTypeData<>(EntityType.TNT, TNTPrimed.class, CraftTNTPrimed::new, spawnData -> new PrimedTnt(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), null))); register(new EntityTypeData<>(EntityType.FALLING_BLOCK, FallingBlock.class, CraftFallingBlock::new, spawnData -> { BlockPos pos = BlockPos.containing(spawnData.x(), spawnData.y(), spawnData.z()); diff --git a/patches/unapplied/server/0689-Expose-furnace-minecart-push-values.patch b/patches/server/0681-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/unapplied/server/0689-Expose-furnace-minecart-push-values.patch rename to patches/server/0681-Expose-furnace-minecart-push-values.patch diff --git a/patches/unapplied/server/0690-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0682-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 92% rename from patches/unapplied/server/0690-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0682-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch index 901728a3bf..46d0d117c4 100644 --- a/patches/unapplied/server/0690-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch +++ b/patches/server/0682-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch @@ -15,10 +15,10 @@ piercing arrows to avoid duplicate damage being applied. protected net.minecraft.world.entity.projectile.Projectile hitCancelled diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 427e889f58c86f7649fc1b661d55277599b320c0..f1bf129aecb6840d79c537338e4057557f07790b 100644 +index 92b630475ef7032c9cae6288b2a0370562e25f57..dfa44899529a7a9c32fe17fcb2091eab7d790f5a 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -305,6 +305,19 @@ public abstract class AbstractArrow extends Projectile { +@@ -322,6 +322,19 @@ public abstract class AbstractArrow extends Projectile { } } diff --git a/patches/unapplied/server/0691-More-Projectile-API.patch b/patches/server/0683-More-Projectile-API.patch similarity index 94% rename from patches/unapplied/server/0691-More-Projectile-API.patch rename to patches/server/0683-More-Projectile-API.patch index c5e9f2e265..895b0e5e0b 100644 --- a/patches/unapplied/server/0691-More-Projectile-API.patch +++ b/patches/server/0683-More-Projectile-API.patch @@ -24,16 +24,16 @@ Co-authored-by: Nassim Jahnke Co-authored-by: SoSeDiK diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -index 7d557c7ec6fb1763395f4920a170bd4e4ba6747f..e603307871b623ce437f4b1b68ab306fbdd9919d 100644 +index 5b7734020b496ade3740d92908ad2d399bfd55e6..e70ca1b2e6fbbc1f20e65429298d01b4ebd2dd29 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -@@ -413,13 +413,18 @@ public class FishingHook extends Projectile { +@@ -414,13 +414,18 @@ public class FishingHook extends Projectile { } } else { // CraftBukkit start - logic to modify fishing wait time - this.timeUntilLured = Mth.nextInt(this.random, this.minWaitTime, this.maxWaitTime); -- this.timeUntilLured -= (this.applyLure) ? (this.lureSpeed * 20 * 5 >= this.maxWaitTime ? this.timeUntilLured - 1 : this.lureSpeed * 20 * 5) : 0; // Paper - Fix Lure infinite loop -+ resetTimeUntilLured(); // Paper - more projectile api - extract time until lured reset logic +- this.timeUntilLured -= (this.applyLure) ? (this.lureSpeed >= this.maxWaitTime ? this.timeUntilLured - 1 : this.lureSpeed ) : 0; // Paper - Fix Lure infinite loop ++ this.resetTimeUntilLured(); // Paper - more projectile api - extract time until lured reset logic // CraftBukkit end } } @@ -42,17 +42,17 @@ index 7d557c7ec6fb1763395f4920a170bd4e4ba6747f..e603307871b623ce437f4b1b68ab306f + // Paper start - more projectile api - extract time until lured reset logic + public void resetTimeUntilLured() { + this.timeUntilLured = Mth.nextInt(this.random, this.minWaitTime, this.maxWaitTime); -+ this.timeUntilLured -= (this.applyLure) ? (this.lureSpeed * 20 * 5 >= this.maxWaitTime ? this.timeUntilLured - 1 : this.lureSpeed * 20 * 5) : 0; // Paper - Fix Lure infinite loop ++ this.timeUntilLured -= (this.applyLure) ? (this.lureSpeed >= this.maxWaitTime ? this.timeUntilLured - 1 : this.lureSpeed ) : 0; // Paper - Fix Lure infinite loop + } + // Paper end - more projectile api - extract time until lured reset logic public boolean calculateOpenWater(BlockPos pos) { FishingHook.OpenWaterType entityfishinghook_waterposition = FishingHook.OpenWaterType.INVALID; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 40348e45b02be9a0b397a883940a476fb6738ef4..ccb7aa341e3087255bce1f6fb953d33584147fd3 100644 +index 7863625d49baa13ea87f2ee295b16706071fb960..ff6007bbf8361db7967b6bf621b27a1d23102e77 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -180,7 +180,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -187,7 +187,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { } // CraftBukkit start - call projectile hit event @@ -62,10 +62,10 @@ index 40348e45b02be9a0b397a883940a476fb6738ef4..ccb7aa341e3087255bce1f6fb953d335 this.hitCancelled = event != null && event.isCancelled(); if (movingobjectposition.getType() == HitResult.Type.BLOCK || !this.hitCancelled) { diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index bf627d66310f201172d3cd3ea12f1d321cd3cd62..5adaeb59f7733809f1cf6b52031292c9611a3a86 100644 +index cb34cc9443da56c0497c7a0192c8b8363c3426fe..58dc69fe319027c2b9ecfb9caf272368e81081df 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -@@ -100,6 +100,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -102,6 +102,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie @Override protected void onHit(HitResult hitResult) { super.onHit(hitResult); @@ -77,7 +77,7 @@ index bf627d66310f201172d3cd3ea12f1d321cd3cd62..5adaeb59f7733809f1cf6b52031292c9 if (!this.level().isClientSide) { ItemStack itemstack = this.getItem(); PotionContents potioncontents = (PotionContents) itemstack.getOrDefault(DataComponents.POTION_CONTENTS, PotionContents.EMPTY); -@@ -111,7 +116,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -113,7 +118,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie if (this.isLingering()) { showParticles = this.makeAreaOfEffectCloud(potioncontents, hitResult); // CraftBukkit - Pass MovingObjectPosition // Paper } else { @@ -86,7 +86,7 @@ index bf627d66310f201172d3cd3ea12f1d321cd3cd62..5adaeb59f7733809f1cf6b52031292c9 } } -@@ -173,7 +178,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -175,7 +180,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie } @@ -95,7 +95,7 @@ index bf627d66310f201172d3cd3ea12f1d321cd3cd62..5adaeb59f7733809f1cf6b52031292c9 AABB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D); List list = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb); Map affected = new HashMap(); // CraftBukkit -@@ -251,7 +256,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -253,7 +258,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie } @@ -175,10 +175,10 @@ index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..de4fb2654c7895cfd83ad694455ee56c + // Paper end - More projectile API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java -index 98f46fadd60ea688fefa8d83dbd6fe9b61b6a96f..0cc1cdf91deb07ebb437ef5e61d149b2c109877f 100644 +index 329ca9c743a7f2feeabbfb769ff9a71f60165006..b095642d0e0ed3e61590d362ce991ff2065b5b78 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java -@@ -60,20 +60,7 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr +@@ -58,20 +58,7 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr this.getHandle().setCritArrow(critical); } @@ -200,7 +200,7 @@ index 98f46fadd60ea688fefa8d83dbd6fe9b61b6a96f..0cc1cdf91deb07ebb437ef5e61d149b2 @Override public boolean isInBlock() { -@@ -140,4 +127,31 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr +@@ -149,4 +136,31 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr public String toString() { return "CraftArrow"; } @@ -307,10 +307,10 @@ index 5232fbef0d014edd32a5d18d4a1500ab215313f5..071be344c3265a0cd52b31ffbb02ff7a } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java -index 7ba6302ecb72fa6e523054e7e3223d79eedf6589..907904da7f89e8e5e5cfab80977f04af3fdf17c7 100644 +index 37527713b0afa6db19eefd57aaffcb2fe3544ce6..46a4f31e2b6eee6f8dc5f8fccd7de4c48a698b61 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java -@@ -388,7 +388,7 @@ public final class CraftEntityTypes { +@@ -389,7 +389,7 @@ public final class CraftEntityTypes { BlockPos pos = BlockPos.containing(spawnData.x(), spawnData.y(), spawnData.z()); return new FallingBlockEntity(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), spawnData.world().getBlockState(pos)); // Paper - create falling block entities correctly })); @@ -320,10 +320,10 @@ index 7ba6302ecb72fa6e523054e7e3223d79eedf6589..907904da7f89e8e5e5cfab80977f04af register(new EntityTypeData<>(EntityType.COMMAND_BLOCK_MINECART, CommandMinecart.class, CraftMinecartCommand::new, spawnData -> new MinecartCommandBlock(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z()))); register(new EntityTypeData<>(EntityType.MINECART, RideableMinecart.class, CraftMinecartRideable::new, spawnData -> new Minecart(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z()))); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index b0a02c9ca4349ab56ceceae8b78559e20a9b0af5..297b7e592caa2a05e1fb18a3ad22a91ae7621f5d 100644 +index 1b084d63bdbb24dad45d28eed1693eb6e26e24dc..43d7bea201a52cfeacf60c75caa28dfd2c4ff164 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -@@ -33,20 +33,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball { +@@ -34,20 +34,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball { this.getHandle().bukkitYield = yield; } @@ -500,10 +500,10 @@ index 6e2f91423371ead9890095cf4b1e2299c4dcba28..9d8f4b7176e60180565e3134a14ecf19 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 00cac0c83897221fd4a83dcee884db751321af2e..88cd49128a19efee6bf20dcfdcfda4b9bd5e4808 100644 +index fe3304a40f2aaf84db825374f4b3d495d31f91ad..2afa23d5e98e618b7220c9203d24ca5628db2efc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -647,7 +647,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -649,7 +649,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } else if (Firework.class.isAssignableFrom(projectile)) { Location location = this.getEyeLocation(); @@ -682,10 +682,10 @@ index e374b9f40eddca13b30855d25a2030f8df98138f..4fc893378fb0568ddcffc7593d66df6b // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index efc3808dde268f8325304f4bce8fb3bf399adafd..9588c191ccb5665be2ff90ae2ded5bbff12faacb 100644 +index e0c1eab089fff724e029ed8109a653403e15fc77..877990d391432f144e0013679aca8c9cfebda03d 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -832,19 +832,19 @@ public class CraftEventFactory { +@@ -833,19 +833,19 @@ public class CraftEventFactory { /** * PotionSplashEvent */ @@ -708,7 +708,7 @@ index efc3808dde268f8325304f4bce8fb3bf399adafd..9588c191ccb5665be2ff90ae2ded5bbf hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity(); } -@@ -853,20 +853,20 @@ public class CraftEventFactory { +@@ -854,20 +854,20 @@ public class CraftEventFactory { return event; } @@ -733,7 +733,7 @@ index efc3808dde268f8325304f4bce8fb3bf399adafd..9588c191ccb5665be2ff90ae2ded5bbf } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 92faa15f79f0541048e29254dcf3560616d3c0e7..2a7996f5cfb1eacf098e73f35bafc4327b041c51 100644 +index 9cf035486cedfc2e3ba522416e8fea3ad01cfec5..80423156c5582b07911561d29ec494dc03a57f07 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -295,12 +295,22 @@ public final class CraftItemStack extends ItemStack { diff --git a/patches/unapplied/server/0692-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0684-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 96% rename from patches/unapplied/server/0692-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0684-Fix-swamp-hut-cat-generation-deadlock.patch index 1b0f7d0ed5..6aa68bdd5c 100644 --- a/patches/unapplied/server/0692-Fix-swamp-hut-cat-generation-deadlock.patch +++ b/patches/server/0684-Fix-swamp-hut-cat-generation-deadlock.patch @@ -10,10 +10,10 @@ indefinitely. Instead of using the world state, we use the already supplied ServerLevelAccessor which will always have the chunk available. diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 951b7f252e67b29092964019bb3463cb00e497e3..b5f13d1bf1cccb9a15d8956f68c960e25098dc98 100644 +index f0e5428394f8de8f7ac05b8cbc34826d153eeaef..d44807c16712afd37efdbf434d1afb12a7c3d343 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -367,7 +367,7 @@ public class Cat extends TamableAnimal implements VariantHolder> 2, y >> 2, z >> 2)); } diff --git a/patches/unapplied/server/0695-Make-some-itemstacks-nonnull.patch b/patches/server/0687-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/unapplied/server/0695-Make-some-itemstacks-nonnull.patch rename to patches/server/0687-Make-some-itemstacks-nonnull.patch diff --git a/patches/unapplied/server/0696-Implement-enchantWithLevels-API.patch b/patches/server/0688-Implement-enchantWithLevels-API.patch similarity index 93% rename from patches/unapplied/server/0696-Implement-enchantWithLevels-API.patch rename to patches/server/0688-Implement-enchantWithLevels-API.patch index 0542b3752a..4c31c65f6b 100644 --- a/patches/unapplied/server/0696-Implement-enchantWithLevels-API.patch +++ b/patches/server/0688-Implement-enchantWithLevels-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement enchantWithLevels API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index be31b8a286794508a1c1bfcf3da0ac64c0383c60..b0d73a9412421d86bd244757806d58fd99687163 100644 +index 31a33e329ee06860f8845d201d32ee86a274a657..e1605d97bbcdbb8903d78848c7b98b44fec34705 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -594,4 +594,26 @@ public final class CraftItemFactory implements ItemFactory { +@@ -605,4 +605,26 @@ public final class CraftItemFactory implements ItemFactory { return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror(); } // Paper end - old getSpawnEgg API diff --git a/patches/unapplied/server/0697-Fix-saving-in-unloadWorld.patch b/patches/server/0689-Fix-saving-in-unloadWorld.patch similarity index 83% rename from patches/unapplied/server/0697-Fix-saving-in-unloadWorld.patch rename to patches/server/0689-Fix-saving-in-unloadWorld.patch index e5f6b417d2..6f74a7c5a5 100644 --- a/patches/unapplied/server/0697-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0689-Fix-saving-in-unloadWorld.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0990c02fb8826f47a1f12617042f71790248e7b1..60441fbe87fed55d76967b7e709a21f462f4f511 100644 +index 89163d43fcf16c39721da9925beb8a7a23daf291..9744e466489be575ac736aaba4b6a48f40b74d62 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1369,7 +1369,7 @@ public final class CraftServer implements Server { +@@ -1372,7 +1372,7 @@ public final class CraftServer implements Server { try { if (save) { diff --git a/patches/unapplied/server/0698-Buffer-OOB-setBlock-calls.patch b/patches/server/0690-Buffer-OOB-setBlock-calls.patch similarity index 82% rename from patches/unapplied/server/0698-Buffer-OOB-setBlock-calls.patch rename to patches/server/0690-Buffer-OOB-setBlock-calls.patch index d0e56ca766..7bc7bd4823 100644 --- a/patches/unapplied/server/0698-Buffer-OOB-setBlock-calls.patch +++ b/patches/server/0690-Buffer-OOB-setBlock-calls.patch @@ -13,10 +13,10 @@ we'll also only gen a trace for the first one, I see no real pressing need to generate more, given that that would *massively* negate this patch otherwise diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 744efc6cdc99f653a1eb9d4f26af8a7c34627f5e..68a6572da2acf2ea2e6996e653a0ffe405846575 100644 +index 421f146ea9c35b852251c0ddb29856c13e11aef3..13229388ddce668061a34c787ab9586d41854d8a 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -283,6 +283,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -284,6 +284,7 @@ public class WorldGenRegion implements WorldGenLevel { } } @@ -24,13 +24,13 @@ index 744efc6cdc99f653a1eb9d4f26af8a7c34627f5e..68a6572da2acf2ea2e6996e653a0ffe4 @Override public boolean ensureCanWrite(BlockPos pos) { int i = SectionPos.blockToSectionCoord(pos.getX()); -@@ -302,7 +303,15 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -303,7 +304,15 @@ public class WorldGenRegion implements WorldGenLevel { return true; } else { + // Paper start - Buffer OOB setBlock calls + if (!hasSetFarWarned) { - Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + String.valueOf(pos) + ", status: " + String.valueOf(this.generatingStatus) + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get())); + Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + String.valueOf(pos) + ", status: " + String.valueOf(this.generatingStep.targetStatus()) + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get())); + hasSetFarWarned = true; + if (this.getServer() != null && this.getServer().isDebugging()) { + io.papermc.paper.util.TraceUtil.dumpTraceForThread("far setBlock call"); diff --git a/patches/unapplied/server/0699-Add-TameableDeathMessageEvent.patch b/patches/server/0691-Add-TameableDeathMessageEvent.patch similarity index 90% rename from patches/unapplied/server/0699-Add-TameableDeathMessageEvent.patch rename to patches/server/0691-Add-TameableDeathMessageEvent.patch index 355d8192ca..e683289da1 100644 --- a/patches/unapplied/server/0699-Add-TameableDeathMessageEvent.patch +++ b/patches/server/0691-Add-TameableDeathMessageEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add TameableDeathMessageEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 8c387df4d1e0b714edb07f177e85fe2ec4706b2a..ed2514de46d0939259ca4e45a6dc96d7c1dac20d 100644 +index f2d311a5450eb684603580bbf7e9e7fc73fc2f5c..07ec4837d17a9cb7db2fa310a42fc87e052b3f9b 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -@@ -196,7 +196,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -237,7 +237,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { @Override public void die(DamageSource damageSource) { if (!this.level().isClientSide && this.level().getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES) && this.getOwner() instanceof ServerPlayer) { diff --git a/patches/unapplied/server/0700-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0692-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 94% rename from patches/unapplied/server/0700-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0692-Fix-new-block-data-for-EntityChangeBlockEvent.patch index a772f3c5fb..4311488b01 100644 --- a/patches/unapplied/server/0700-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0692-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -65,10 +65,10 @@ index f4bc556e245179d0a4710e5255dd289aaafdceb7..d802985f1431be4332c07f0dab88feeb this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 8feb886acf3b60356f1cba9e09a0cdea9ea8266a..b58300e114e2e27ac68d7a9489bc52b127c9bc17 100644 +index e5bd3039ef698fcea80a270b6111c2a663e5075c..0109c8ed8bf6a053674456fa4473934e028ca418 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -@@ -577,7 +577,7 @@ public class Rabbit extends Animal implements VariantHolder { +@@ -581,7 +581,7 @@ public class Rabbit extends Animal implements VariantHolder { if (i == 0) { // CraftBukkit start @@ -78,7 +78,7 @@ index 8feb886acf3b60356f1cba9e09a0cdea9ea8266a..b58300e114e2e27ac68d7a9489bc52b1 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index b5cb4e4682f66ac9423af8d1547d0f1a4f9e6c5d..aa22829c3d41118664a872540fdc8f716120c407 100644 +index 3cd4a744c3e3aeba90f342de9dea67ef2f3de626..1b49090a466bc74d9e5f2815314955b6dfbb83dc 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -377,7 +377,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -91,10 +91,10 @@ index b5cb4e4682f66ac9423af8d1547d0f1a4f9e6c5d..aa22829c3d41118664a872540fdc8f71 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 57f84a0eccbdb051adddc25a1a7126f60c7c274b..260202fab3ac300552c557b44dcf251f083c6a78 100644 +index 7caa5469a4daa5d0c569f446ff2d597a9f10e8ac..828c51477cd8f35d591367b30bf4feef6a250292 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -563,7 +563,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -565,7 +565,7 @@ public class EnderMan extends Monster implements NeutralMob { boolean flag = movingobjectpositionblock.getBlockPos().equals(blockposition); if (iblockdata.is(BlockTags.ENDERMAN_HOLDABLE) && flag) { @@ -104,10 +104,10 @@ index 57f84a0eccbdb051adddc25a1a7126f60c7c274b..260202fab3ac300552c557b44dcf251f world.gameEvent((Holder) GameEvent.BLOCK_DESTROY, blockposition, GameEvent.Context.of(this.enderman, iblockdata)); this.enderman.setCarriedBlock(iblockdata.getBlock().defaultBlockState()); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index cec801ba14bed8b043b2375f1bf9e7811a63e995..2d7b7c949faaaaae94c0043132a4a822f55df104 100644 +index aa4111eef22546f8aa630228c51ef5761c9b373b..212d341425c0f93bba0376de69bea61ffcf4dbd6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -@@ -150,7 +150,7 @@ public class Ravager extends Raider { +@@ -151,7 +151,7 @@ public class Ravager extends Raider { if (block instanceof LeavesBlock) { // CraftBukkit start @@ -131,10 +131,10 @@ index 9ff42b0ae2b82dc3092e38e1439d89b4ab554b17..860e385fc83f9787dca92efe35d21fd6 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 5adaeb59f7733809f1cf6b52031292c9611a3a86..d8ac724d01d81b8c52f8e05451212ac1cd775c0b 100644 +index 58dc69fe319027c2b9ecfb9caf272368e81081df..5c6cb752f61c3f3c2960a337173fb7dfe86cc1d3 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -@@ -290,7 +290,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -292,7 +292,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie if (iblockdata.is(BlockTags.FIRE)) { // CraftBukkit start @@ -170,10 +170,10 @@ index ec9190abe3edf7c3845156bb967dddf6ae7c30ff..95cb7492ac691a8e8aa9894f701b802a } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/TntBlock.java b/src/main/java/net/minecraft/world/level/block/TntBlock.java -index ff872a91effaed7394848fe5c1ab4d2bbac0b5fc..a5e1813ba4fee55f469d5c4884124fccecd908d2 100644 +index 4896ddca849646135ae101236e534ab8f59bd617..a3525ae6d83591664e1456f20d9732a8de0ec326 100644 --- a/src/main/java/net/minecraft/world/level/block/TntBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TntBlock.java -@@ -160,7 +160,7 @@ public class TntBlock extends Block { +@@ -158,7 +158,7 @@ public class TntBlock extends Block { if (projectile.isOnFire() && projectile.mayInteract(world, blockposition)) { // CraftBukkit start @@ -196,10 +196,10 @@ index edc20745649b0837f1371c8d29e71fc0c8e5528f..932831bb5632ead5850842fc77192c84 } // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9588c191ccb5665be2ff90ae2ded5bbff12faacb..bb7ae2c13b8a037b631366da337d1d43985e1845 100644 +index 877990d391432f144e0013679aca8c9cfebda03d..972c54fbdf7d3ab74f8f8ea62144805c9301399f 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1358,11 +1358,11 @@ public class CraftEventFactory { +@@ -1359,11 +1359,11 @@ public class CraftEventFactory { return event; } diff --git a/patches/unapplied/server/0701-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0693-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 86% rename from patches/unapplied/server/0701-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0693-fix-player-loottables-running-when-mob-loot-gamerule.patch index 8791910638..272defd685 100644 --- a/patches/unapplied/server/0701-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0693-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a94b43df4a6cd6f5974015bc5fc87d37347276f1..c5f3849a5ce90c985faeff04f718491373155cbc 100644 +index 279c323bc2c2658fa1848d0c98f0614fbeb97e99..660dd568ba30037170db1abc470e91c9af614f4c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -952,12 +952,14 @@ public class ServerPlayer extends Player { +@@ -961,12 +961,14 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } } } diff --git a/patches/unapplied/server/0702-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0694-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 85% rename from patches/unapplied/server/0702-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0694-Ensure-entity-passenger-world-matches-ridden-entity.patch index 52c9a946ed..ec690057bb 100644 --- a/patches/unapplied/server/0702-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0694-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6025b45d1c247941d83cd9c2d516c14a70f64bfd..85fd7ad12e059f88bacf2d7c27715dcbd8fa3d4e 100644 +index ad049687cd6c6c98bd08b512c6233b725c6ad9ab..156fb444061be556bbb1f230b239d5d2ce59b94b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2610,7 +2610,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2689,7 +2689,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean startRiding(Entity entity, boolean force) { diff --git a/patches/unapplied/server/0703-cache-resource-keys.patch b/patches/server/0695-cache-resource-keys.patch similarity index 100% rename from patches/unapplied/server/0703-cache-resource-keys.patch rename to patches/server/0695-cache-resource-keys.patch diff --git a/patches/unapplied/server/0704-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0696-Allow-changing-the-EnderDragon-podium.patch similarity index 96% rename from patches/unapplied/server/0704-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0696-Allow-changing-the-EnderDragon-podium.patch index 623c4b9689..7c00628ca0 100644 --- a/patches/unapplied/server/0704-Allow-changing-the-EnderDragon-podium.patch +++ b/patches/server/0696-Allow-changing-the-EnderDragon-podium.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow changing the EnderDragon podium diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 789823dbaaf2e23942749145dbb64071539624aa..e8be7ddbef12b27ed5c5fcfa8b726d5a85058aa9 100644 +index 201ef4a3f5bc8633f7a51e151e9e87efc4004cad..45673a7630977e833df84e29e2f0b0012a3ab049 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -@@ -102,6 +102,10 @@ public class EnderDragon extends Mob implements Enemy { +@@ -103,6 +103,10 @@ public class EnderDragon extends Mob implements Enemy { private final int[] nodeAdjacency; private final BinaryHeap openSet; private final Explosion explosionSource; // CraftBukkit - reusable source for CraftTNTPrimed.getSource() @@ -19,7 +19,7 @@ index 789823dbaaf2e23942749145dbb64071539624aa..e8be7ddbef12b27ed5c5fcfa8b726d5a public EnderDragon(EntityType entitytypes, Level world) { super(EntityType.ENDER_DRAGON, world); -@@ -142,6 +146,19 @@ public class EnderDragon extends Mob implements Enemy { +@@ -143,6 +147,19 @@ public class EnderDragon extends Mob implements Enemy { return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } @@ -39,7 +39,7 @@ index 789823dbaaf2e23942749145dbb64071539624aa..e8be7ddbef12b27ed5c5fcfa8b726d5a @Override public boolean isFlapping() { float f = Mth.cos(this.flapTime * 6.2831855F); -@@ -993,7 +1010,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -1010,7 +1027,7 @@ public class EnderDragon extends Mob implements Enemy { d0 = segment2[1] - segment1[1]; } } else { @@ -48,7 +48,7 @@ index 789823dbaaf2e23942749145dbb64071539624aa..e8be7ddbef12b27ed5c5fcfa8b726d5a double d1 = Math.max(Math.sqrt(blockposition.distToCenterSqr(this.position())) / 4.0D, 1.0D); d0 = (double) segmentOffset / d1; -@@ -1020,7 +1037,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -1037,7 +1054,7 @@ public class EnderDragon extends Mob implements Enemy { vec3d = this.getViewVector(tickDelta); } } else { diff --git a/patches/unapplied/server/0705-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0697-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 96% rename from patches/unapplied/server/0705-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0697-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch index 05d5b9189b..265f2bbdbb 100644 --- a/patches/unapplied/server/0705-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch +++ b/patches/server/0697-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch @@ -9,7 +9,7 @@ is not a WorldGenRegion, we can bypass the deadlock entirely. See https://bugs.mojang.com/browse/MC-246262 diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index bd401b38239fb7e510f82f458f9336b7da372da0..b5365dce7882c98b5be4f5df877165eee80933dd 100644 +index 33564e62e3181d28b18a957e28b8ec5152d8339f..cf8258e8d46ca7286a66c38fa24af369bd9a279f 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -279,7 +279,11 @@ public class StructureTemplate { diff --git a/patches/unapplied/server/0706-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0698-Prevent-tile-entity-copies-loading-chunks.patch similarity index 90% rename from patches/unapplied/server/0706-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0698-Prevent-tile-entity-copies-loading-chunks.patch index 850db8e7b0..70c8b5f7ec 100644 --- a/patches/unapplied/server/0706-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0698-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index eec6765f0885994791e6b09cd731bb275ceb286b..535f6478453e61fa37c5e6f887d27f25ca82269b 100644 +index 68571261c7095b9477d09536b69272eea7137e64..cd3556878990d0dca36373c5482afb83a241e102 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3185,7 +3185,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3202,7 +3202,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = BlockEntity.getPosFromTag(customdata.getUnsafe()); if (this.player.level().isLoaded(blockposition)) { diff --git a/patches/unapplied/server/0707-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0699-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 87% rename from patches/unapplied/server/0707-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0699-Use-username-instead-of-display-name-in-PlayerList-g.patch index 9eed66c5cf..b18fcc5683 100644 --- a/patches/unapplied/server/0707-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0699-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9fc053e2f6f3bbd9c17fda5679322a0fb403b7fe..c76143eadbcb434d4468b4d7c32d71d646788341 100644 +index 11ac1a4e2cc276b9817014b8bb6a454e282d6258..fc96b6e2a279ce6a9fff2a4171604da9e5eeb660 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1434,7 +1434,7 @@ public abstract class PlayerList { +@@ -1388,7 +1388,7 @@ public abstract class PlayerList { // CraftBukkit start public ServerStatsCounter getPlayerStats(ServerPlayer entityhuman) { ServerStatsCounter serverstatisticmanager = entityhuman.getStats(); diff --git a/patches/server/0700-Expand-PlayerItemDamageEvent.patch b/patches/server/0700-Expand-PlayerItemDamageEvent.patch new file mode 100644 index 0000000000..bf458d8c9b --- /dev/null +++ b/patches/server/0700-Expand-PlayerItemDamageEvent.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: HexedHero <6012891+HexedHero@users.noreply.github.com> +Date: Sun, 10 Apr 2022 06:26:32 +0100 +Subject: [PATCH] Expand PlayerItemDamageEvent + + +diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java +index 823146a66de8ce13e6dc6faf2fd135480bd51c3a..d825c2e3808e44db9935dab4e7b528146c6d83c2 100644 +--- a/src/main/java/net/minecraft/world/item/ItemStack.java ++++ b/src/main/java/net/minecraft/world/item/ItemStack.java +@@ -650,10 +650,11 @@ public final class ItemStack implements DataComponentHolder { + if (this.isDamageableItem()) { + if (player == null || !player.hasInfiniteMaterials()) { + if (amount > 0) { ++ int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent + amount = EnchantmentHelper.processDurabilityChange(world, this, amount); + // CraftBukkit start + if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent +- PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper - Add EntityDamageItemEvent ++ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper - Add EntityDamageItemEvent & Expand PlayerItemDamageEvent + event.getPlayer().getServer().getPluginManager().callEvent(event); + + if (amount != event.getDamage() || event.isCancelled()) { diff --git a/patches/unapplied/server/0709-WorldCreator-keepSpawnLoaded.patch b/patches/server/0701-WorldCreator-keepSpawnLoaded.patch similarity index 87% rename from patches/unapplied/server/0709-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0701-WorldCreator-keepSpawnLoaded.patch index 78068c2d90..04db336209 100644 --- a/patches/unapplied/server/0709-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0701-WorldCreator-keepSpawnLoaded.patch @@ -5,10 +5,10 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 60441fbe87fed55d76967b7e709a21f462f4f511..fbfc9e45e7740c0560affb2f1c135032fa5aecc9 100644 +index 9744e466489be575ac736aaba4b6a48f40b74d62..35a216823738ae9634388023ff76b35fdb7f1038 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1312,7 +1312,7 @@ public final class CraftServer implements Server { +@@ -1315,7 +1315,7 @@ public final class CraftServer implements Server { } // If set to not keep spawn in memory (changed from default) then adjust rule accordingly diff --git a/patches/unapplied/server/0710-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0702-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/unapplied/server/0710-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0702-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/unapplied/server/0711-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0703-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 91% rename from patches/unapplied/server/0711-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0703-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index 2dae75e5b1..ed6f344427 100644 --- a/patches/unapplied/server/0711-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0703-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c55d944a70300bf77dbde918c91815cabe68496d..ac2bd55deeef8e14b8fa0db1f2d10e36d045f0e4 100644 +index 073cf184a0e7af41048ae67a9b17b4cdfcc43c35..4d024956156aefde7df308642dfd0a40779e0633 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -424,12 +424,16 @@ public class ServerPlayerGameMode { +@@ -429,12 +429,16 @@ public class ServerPlayerGameMode { block.destroy(this.level, pos, iblockdata1); } @@ -25,7 +25,7 @@ index c55d944a70300bf77dbde918c91815cabe68496d..ac2bd55deeef8e14b8fa0db1f2d10e36 itemstack.mineBlock(this.level, iblockdata1, pos, this.player); if (flag && flag1 && event.isDropItems()) { // CraftBukkit - Check if block should drop items -@@ -450,6 +454,13 @@ public class ServerPlayerGameMode { +@@ -455,6 +459,13 @@ public class ServerPlayerGameMode { if (flag && event != null) { iblockdata.getBlock().popExperience(this.level, pos, event.getExpToDrop(), this.player); // Paper } @@ -40,7 +40,7 @@ index c55d944a70300bf77dbde918c91815cabe68496d..ac2bd55deeef8e14b8fa0db1f2d10e36 return true; // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -index ef804067ee05870e9331237b44ca1ffeb8df99c7..21a7f9414e27c73b58fd75fbe68cf889f52a5d01 100644 +index 8d6736003934c5958f600660bdee58b386c39da4..c75227b2ea165dcd65c203e60157ac7cdebd4bc6 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java @@ -95,7 +95,7 @@ public class BeehiveBlock extends BaseEntityBlock { diff --git a/patches/unapplied/server/0712-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0704-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 89% rename from patches/unapplied/server/0712-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0704-Add-EntityDyeEvent-and-CollarColorable-interface.patch index 190a5b5de8..16f87ae350 100644 --- a/patches/unapplied/server/0712-Add-EntityDyeEvent-and-CollarColorable-interface.patch +++ b/patches/server/0704-Add-EntityDyeEvent-and-CollarColorable-interface.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityDyeEvent and CollarColorable interface diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index b5f13d1bf1cccb9a15d8956f68c960e25098dc98..118be62539bb0266c2e89bd68abbc4a975fcd833 100644 +index d44807c16712afd37efdbf434d1afb12a7c3d343..2ed442c8d36f285420cf84a956e90b6036384ce0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -388,6 +388,13 @@ public class Cat extends TamableAnimal implements VariantHolder diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index cc00bf81de902cfc587bcf6f18e861fd4339c91e..d504d10fbe45dfe3f2f3d08d2473df6cd18f6dcf 100644 +index 01ac7bb0ef8ab13e7c4b5b56b768b7c0a642b300..caf9273cfafbbaaf8dc95498927383e608773665 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -67,6 +67,7 @@ public class FallingBlockEntity extends Entity { - @Nullable +@@ -71,6 +71,7 @@ public class FallingBlockEntity extends Entity { public CompoundTag blockData; + public boolean forceTickAfterTeleportToDuplicate; protected static final EntityDataAccessor DATA_START_POS = SynchedEntityData.defineId(FallingBlockEntity.class, EntityDataSerializers.BLOCK_POS); + public boolean autoExpire = true; // Paper - Expand FallingBlock API public FallingBlockEntity(EntityType type, Level world) { super(type, world); -@@ -171,7 +172,7 @@ public class FallingBlockEntity extends Entity { +@@ -176,7 +177,7 @@ public class FallingBlockEntity extends Entity { } if (!this.onGround() && !flag1) { @@ -33,7 +33,7 @@ index cc00bf81de902cfc587bcf6f18e861fd4339c91e..d504d10fbe45dfe3f2f3d08d2473df6c if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { this.spawnAtLocation((ItemLike) block); } -@@ -317,6 +318,7 @@ public class FallingBlockEntity extends Entity { +@@ -322,6 +323,7 @@ public class FallingBlockEntity extends Entity { } nbt.putBoolean("CancelDrop", this.cancelDrop); @@ -41,7 +41,7 @@ index cc00bf81de902cfc587bcf6f18e861fd4339c91e..d504d10fbe45dfe3f2f3d08d2473df6c } @Override -@@ -344,6 +346,11 @@ public class FallingBlockEntity extends Entity { +@@ -349,6 +351,11 @@ public class FallingBlockEntity extends Entity { this.blockState = Blocks.SAND.defaultBlockState(); } diff --git a/patches/unapplied/server/0718-Add-support-for-Proxy-Protocol.patch b/patches/server/0710-Add-support-for-Proxy-Protocol.patch similarity index 97% rename from patches/unapplied/server/0718-Add-support-for-Proxy-Protocol.patch rename to patches/server/0710-Add-support-for-Proxy-Protocol.patch index 1a5592988a..9fb1a82dd2 100644 --- a/patches/unapplied/server/0718-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0710-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index 69b5d39f57a63130c0b83f6238898bdf68fa1e9a..48b8db6d5fdf9b2f7155b9356418178f5594ddcb 100644 +index 2bcb4eacd06c76f2c950b424b2a2c4d53497c538..b06f38b87765d084565bc11cf5da6076562b6be8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -28,6 +28,7 @@ dependencies { diff --git a/patches/unapplied/server/0719-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0711-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/unapplied/server/0719-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0711-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/unapplied/server/0720-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0712-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/unapplied/server/0720-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0712-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/unapplied/server/0721-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0713-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/unapplied/server/0721-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0713-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/unapplied/server/0722-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0714-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/unapplied/server/0722-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0714-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/unapplied/server/0723-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0715-Prevent-entity-loading-causing-async-lookups.patch similarity index 95% rename from patches/unapplied/server/0723-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0715-Prevent-entity-loading-causing-async-lookups.patch index ddcc1cda0a..107aabb196 100644 --- a/patches/unapplied/server/0723-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0715-Prevent-entity-loading-causing-async-lookups.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 85fd7ad12e059f88bacf2d7c27715dcbd8fa3d4e..608bc43bd84f10d5610133b041aff8e3a32f178a 100644 +index 156fb444061be556bbb1f230b239d5d2ce59b94b..bbca8a478ab4c27c21fb6fe33fdb57fd3d29435c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -739,6 +739,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -715,6 +715,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public void baseTick() { this.level().getProfiler().push("entityBaseTick"); diff --git a/patches/unapplied/server/0724-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0716-Throw-exception-on-world-create-while-being-ticked.patch similarity index 86% rename from patches/unapplied/server/0724-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0716-Throw-exception-on-world-create-while-being-ticked.patch index 889bf9c379..d8d6d5f265 100644 --- a/patches/unapplied/server/0724-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0716-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,10 +7,10 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0420e92207a8b106d9b70f92774b21bb1dc19b25..91771afb413b56ff84697f4d1264e2e97ee5c132 100644 +index 29011d222434cbb2c71797786b8376ea37c8023a..4b44447360b75b6dbe93d8176dcba2db02d77f1e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -311,6 +311,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1555,7 +1556,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - BlockPhysicsEvent -@@ -1627,6 +1630,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(this.worlds.values()); } @@ -60,7 +60,7 @@ index fbfc9e45e7740c0560affb2f1c135032fa5aecc9..6a4ade9e6d741fbc5ca878047df6a35c public DedicatedPlayerList getHandle() { return this.playerList; } -@@ -1166,6 +1171,7 @@ public final class CraftServer implements Server { +@@ -1169,6 +1174,7 @@ public final class CraftServer implements Server { @Override public World createWorld(WorldCreator creator) { Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP"); @@ -68,7 +68,7 @@ index fbfc9e45e7740c0560affb2f1c135032fa5aecc9..6a4ade9e6d741fbc5ca878047df6a35c Preconditions.checkArgument(creator != null, "WorldCreator cannot be null"); String name = creator.name(); -@@ -1342,6 +1348,7 @@ public final class CraftServer implements Server { +@@ -1345,6 +1351,7 @@ public final class CraftServer implements Server { @Override public boolean unloadWorld(World world, boolean save) { diff --git a/patches/unapplied/server/0725-Dont-resent-entity-on-art-update.patch b/patches/server/0717-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/unapplied/server/0725-Dont-resent-entity-on-art-update.patch rename to patches/server/0717-Dont-resent-entity-on-art-update.patch diff --git a/patches/unapplied/server/0726-Add-WardenAngerChangeEvent.patch b/patches/server/0718-Add-WardenAngerChangeEvent.patch similarity index 94% rename from patches/unapplied/server/0726-Add-WardenAngerChangeEvent.patch rename to patches/server/0718-Add-WardenAngerChangeEvent.patch index 38df99e752..41f4251548 100644 --- a/patches/unapplied/server/0726-Add-WardenAngerChangeEvent.patch +++ b/patches/server/0718-Add-WardenAngerChangeEvent.patch @@ -18,10 +18,10 @@ index 27e52ee93ab591e97f37705de64cb5b62c06e253..3d792957f27fd4bdfad8d76262a8e2a2 int j = this.angerByUuid.removeInt(entity.getUUID()); i += j; diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index e428ccc1a3e79b010cd8559879a07909c24cca47..ddd60be52dce5773c80934be5aa5705db239e3dd 100644 +index aaa4b5d90e23b09f87847aa52c36548c94ddf548..38bf417a9ad4647f4af24d969f3bf4fed9c4bad7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -@@ -482,6 +482,15 @@ public class Warden extends Monster implements VibrationSystem { +@@ -479,6 +479,15 @@ public class Warden extends Monster implements VibrationSystem { @VisibleForTesting public void increaseAngerAt(@Nullable Entity entity, int amount, boolean listening) { if (!this.isNoAi() && this.canTargetEntity(entity)) { diff --git a/patches/unapplied/server/0727-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0719-Add-option-for-strict-advancement-dimension-checks.patch similarity index 88% rename from patches/unapplied/server/0727-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0719-Add-option-for-strict-advancement-dimension-checks.patch index 67c0fb153c..1779f26007 100644 --- a/patches/unapplied/server/0727-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0719-Add-option-for-strict-advancement-dimension-checks.patch @@ -11,10 +11,10 @@ distance trigger. This adds a config option to ignore that and use the exact dimension key of the worlds involved. diff --git a/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java b/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java -index 5be2d877162922d6f29592e723b7d5aff14e1515..37174de2319e353b2f989d8321758a081c655a3f 100644 +index 01b8f7024fbc965bc6a7f97f79ba3dec964ef769..801823d003a8e28a13fe90db4604cd0938899c6d 100644 --- a/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java +++ b/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java -@@ -42,7 +42,7 @@ public record LocationPredicate( +@@ -44,7 +44,7 @@ public record LocationPredicate( public boolean matches(ServerLevel world, double x, double y, double z) { if (this.position.isPresent() && !this.position.get().matches(x, y, z)) { return false; @@ -24,10 +24,10 @@ index 5be2d877162922d6f29592e723b7d5aff14e1515..37174de2319e353b2f989d8321758a08 } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c5f3849a5ce90c985faeff04f718491373155cbc..d0a7bcc0dde8b2a9543cf4c0c8d35ab042fb4e3b 100644 +index 660dd568ba30037170db1abc470e91c9af614f4c..015db96646c603fb4d9b3b9ceb8853f680332944 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1349,6 +1349,12 @@ public class ServerPlayer extends Player { +@@ -1390,6 +1390,12 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { ResourceKey maindimensionkey = CraftDimensionUtil.getMainDimensionKey(origin); ResourceKey maindimensionkey1 = CraftDimensionUtil.getMainDimensionKey(this.level()); diff --git a/patches/unapplied/server/0728-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0720-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/unapplied/server/0728-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0720-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/unapplied/server/0729-Nameable-Banner-API.patch b/patches/server/0721-Nameable-Banner-API.patch similarity index 100% rename from patches/unapplied/server/0729-Nameable-Banner-API.patch rename to patches/server/0721-Nameable-Banner-API.patch diff --git a/patches/unapplied/server/0730-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0722-Don-t-broadcast-messages-to-command-blocks.patch similarity index 92% rename from patches/unapplied/server/0730-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0722-Don-t-broadcast-messages-to-command-blocks.patch index 806e4de11e..2a9b9d3a17 100644 --- a/patches/unapplied/server/0730-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0722-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,10 +20,10 @@ index 8c2dcc4134d96351cee75773214f3f47e71533e9..e6bfcc50cdf728216084bc00a5bb8b6b Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6a4ade9e6d741fbc5ca878047df6a35cf24a8461..8b629647c15721207f14081832bea6a702359b77 100644 +index c0f6b96e9aaf52d8141f31c46035f09fa2a12caa..873daccd9c9521e75dcca5e5070ffcbbac00956a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1911,7 +1911,7 @@ public final class CraftServer implements Server { +@@ -1914,7 +1914,7 @@ public final class CraftServer implements Server { // Paper end Set recipients = new HashSet<>(); for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) { diff --git a/patches/unapplied/server/0731-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0723-Prevent-empty-items-from-being-added-to-world.patch similarity index 89% rename from patches/unapplied/server/0731-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0723-Prevent-empty-items-from-being-added-to-world.patch index 6515705f6a..5659cfbcab 100644 --- a/patches/unapplied/server/0731-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0723-Prevent-empty-items-from-being-added-to-world.patch @@ -7,10 +7,10 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 452dfcce367470711e12ee174518359dc916a10d..e42dd32e277d8071a2c1b4411bc222a62023102d 100644 +index d839dd47eb02ce30119c57ff2c1a46c9570fe913..e1e0cf97d2badd26a9391bf0f758edae262a14c2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1237,6 +1237,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1235,6 +1235,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { diff --git a/patches/unapplied/server/0732-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0724-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/unapplied/server/0732-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0724-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/unapplied/server/0733-Add-Player-getFishHook.patch b/patches/server/0725-Add-Player-getFishHook.patch similarity index 100% rename from patches/unapplied/server/0733-Add-Player-getFishHook.patch rename to patches/server/0725-Add-Player-getFishHook.patch diff --git a/patches/unapplied/server/0734-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0726-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/unapplied/server/0734-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0726-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/unapplied/server/0735-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0727-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 90% rename from patches/unapplied/server/0735-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0727-Add-various-missing-EntityDropItemEvent-calls.patch index c9e361d32d..d3b522d0fb 100644 --- a/patches/unapplied/server/0735-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0727-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 608bc43bd84f10d5610133b041aff8e3a32f178a..e7c1e235ef03bb03e2788616255f7b14fa7fc0e3 100644 +index bbca8a478ab4c27c21fb6fe33fdb57fd3d29435c..d328393e62e4e49ddd56c10a9f4f5fcf0b218ddf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2518,6 +2518,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2559,6 +2559,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess stack.setCount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe entityitem.setDefaultPickUpDelay(); @@ -24,10 +24,10 @@ index 608bc43bd84f10d5610133b041aff8e3a32f178a..e7c1e235ef03bb03e2788616255f7b14 EntityDropItemEvent event = new EntityDropItemEvent(this.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity()); Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index ff5d117e4740fe1762b5d1f547fc5cb89ab8515b..1b1cb0e4d54e52ebe794199e386c54c5d84b3719 100644 +index 08823651b0a81b15bc33f86c96d6cc1dc72770f4..da45cc62985f8b67cdfeffc21cb33837db673555 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -@@ -583,7 +583,7 @@ public class Dolphin extends WaterAnimal { +@@ -576,7 +576,7 @@ public class Dolphin extends WaterAnimal { float f2 = 0.02F * Dolphin.this.random.nextFloat(); entityitem.setDeltaMovement((double) (0.3F * -Mth.sin(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.cos(f1) * f2), (double) (0.3F * Mth.sin(Dolphin.this.getXRot() * 0.017453292F) * 1.5F), (double) (0.3F * Mth.cos(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.sin(f1) * f2)); @@ -37,7 +37,7 @@ index ff5d117e4740fe1762b5d1f547fc5cb89ab8515b..1b1cb0e4d54e52ebe794199e386c54c5 } } diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 82ced9f42dced65322a55579bb764fb4dc7c1b66..1aa5485f2608000e4ac07350d1c537bc9bd92de4 100644 +index e46c8231ee318eda0512afbb6343b426b4838643..3265b3b5aede517b6fd8bb836947795bf8881350 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -507,14 +507,14 @@ public class Fox extends Animal implements VariantHolder { @@ -72,7 +72,7 @@ index 3b2cf9ca8447321d64ffdb4fdb9569d736d63dbb..923806900ef6248576e71260d40e9caf } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 11236a1c1705600c2317f0ea4e3b712327352b40..a0c52ce65d4035d135b1536c7408a6867a553447 100644 +index 94df94f7acc121201966955a09fb336b0a98e599..d34d8fe70379dcad9540739ec0ae1c94f01fc46b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -350,8 +350,9 @@ public class Sniffer extends Animal { diff --git a/patches/unapplied/server/0736-Fix-Bee-flower-NPE.patch b/patches/server/0728-Fix-Bee-flower-NPE.patch similarity index 85% rename from patches/unapplied/server/0736-Fix-Bee-flower-NPE.patch rename to patches/server/0728-Fix-Bee-flower-NPE.patch index 13dcee533d..db6e1b0ad9 100644 --- a/patches/unapplied/server/0736-Fix-Bee-flower-NPE.patch +++ b/patches/server/0728-Fix-Bee-flower-NPE.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Bee flower NPE diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index d317b8500e8d2c280e52140440cf2b9cb61c3b28..0dfb8109fd8c022b079da00f6a0e3fc85b57bf7a 100644 +index f933654b66f7474dc071da5f10cf1684fdac367a..1b3978f4ea7e8491e0c0cb6de23c141f44fab414 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java -@@ -794,7 +794,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -805,7 +805,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { ++this.pollinatingTicks; if (this.pollinatingTicks > 600) { Bee.this.savedFlowerPos = null; diff --git a/patches/unapplied/server/0737-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0729-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 60% rename from patches/unapplied/server/0737-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0729-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index dabe57eadf..8239526395 100644 --- a/patches/unapplied/server/0737-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0729-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 535f6478453e61fa37c5e6f887d27f25ca82269b..841e9ff72bf48f9273afc14dfa636232be2c955c 100644 +index cd3556878990d0dca36373c5482afb83a241e102..07126be6e292e9b5d29265817d00d651dda5fd07 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2367,7 +2367,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2384,7 +2384,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Spigot end // this.chatSpamTickCount += 20; -- if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { -+ if (counted && this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - exclude from SpigotConfig.spamExclusions +- if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { ++ if (counted && this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // Paper - exclude from SpigotConfig.spamExclusions // CraftBukkit end - this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause + this.disconnect((Component) Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause } diff --git a/patches/unapplied/server/0738-More-Teleport-API.patch b/patches/server/0730-More-Teleport-API.patch similarity index 93% rename from patches/unapplied/server/0738-More-Teleport-API.patch rename to patches/server/0730-More-Teleport-API.patch index ac02a30e41..6014278151 100644 --- a/patches/unapplied/server/0738-More-Teleport-API.patch +++ b/patches/server/0730-More-Teleport-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More Teleport API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 841e9ff72bf48f9273afc14dfa636232be2c955c..01905f6db49ffe578998f4cf6d24311400a3d92b 100644 +index 07126be6e292e9b5d29265817d00d651dda5fd07..1e39ec69c0ec26dfac6512bb04587801bbea687e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1553,11 +1553,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1566,11 +1566,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return false; // CraftBukkit - Return event status } @@ -29,10 +29,10 @@ index 841e9ff72bf48f9273afc14dfa636232be2c955c..01905f6db49ffe578998f4cf6d243114 d0 = to.getX(); d1 = to.getY(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 113ca1d16cb7650d72f488cdaa9e670d51dc85f0..b6fef2ca5b564c293cb602cb8e300d35dba89b1f 100644 +index 47f24e390efd8eb4cb7f62b5203825f4160772b7..243ac4253a1541dba52126bad96682e43c6f48a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -219,15 +219,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -221,15 +221,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @Override public boolean teleport(Location location, TeleportCause cause) { @@ -71,7 +71,7 @@ index 113ca1d16cb7650d72f488cdaa9e670d51dc85f0..b6fef2ca5b564c293cb602cb8e300d35 // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { -@@ -958,6 +979,39 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -975,6 +996,39 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return CraftEntity.perm; } @@ -112,10 +112,10 @@ index 113ca1d16cb7650d72f488cdaa9e670d51dc85f0..b6fef2ca5b564c293cb602cb8e300d35 private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6793acbbae09a9bc39f59c029f6b02182ec33a92..898259c35c25ee034c859e210350efc19c559e3b 100644 +index 7716d990ee193e920fc14e52404afdeab12c62b5..48c1af4bfa97d2c4e8fd695af5b9cefb5398db97 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1273,13 +1273,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1286,13 +1286,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setRotation(float yaw, float pitch) { @@ -218,7 +218,7 @@ index 6793acbbae09a9bc39f59c029f6b02182ec33a92..898259c35c25ee034c859e210350efc1 location.checkFinite(); ServerPlayer entity = this.getHandle(); -@@ -1292,7 +1380,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1305,7 +1393,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return false; } @@ -227,7 +227,7 @@ index 6793acbbae09a9bc39f59c029f6b02182ec33a92..898259c35c25ee034c859e210350efc1 return false; } -@@ -1301,7 +1389,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1314,7 +1402,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // To = Players new Location if Teleport is Successful Location to = location; // Create & Call the Teleport Event. @@ -236,7 +236,7 @@ index 6793acbbae09a9bc39f59c029f6b02182ec33a92..898259c35c25ee034c859e210350efc1 this.server.getPluginManager().callEvent(event); // Return False to inform the Plugin that the Teleport was unsuccessful/cancelled. -@@ -1310,7 +1398,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1323,7 +1411,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // If this player is riding another entity, we must dismount before teleporting. @@ -245,7 +245,7 @@ index 6793acbbae09a9bc39f59c029f6b02182ec33a92..898259c35c25ee034c859e210350efc1 // SPIGOT-5509: Wakeup, similar to riding if (this.isSleeping()) { -@@ -1326,13 +1414,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1339,13 +1427,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle(); // Close any foreign inventory @@ -266,4 +266,4 @@ index 6793acbbae09a9bc39f59c029f6b02182ec33a92..898259c35c25ee034c859e210350efc1 + // Paper end - Teleport API } else { // The respawn reason should never be used if the passed location is non null. - this.server.getHandle().respawn(entity, toWorld, true, to, !toWorld.paperConfig().environment.disableTeleportationSuffocationCheck, null); // Paper + this.server.getHandle().respawn(entity, true, Entity.RemovalReason.CHANGED_DIMENSION, null, to); diff --git a/patches/server/0731-Add-EntityPortalReadyEvent.patch b/patches/server/0731-Add-EntityPortalReadyEvent.patch new file mode 100644 index 0000000000..72e8f57726 --- /dev/null +++ b/patches/server/0731-Add-EntityPortalReadyEvent.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Wed, 12 May 2021 04:30:42 -0700 +Subject: [PATCH] Add EntityPortalReadyEvent + + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index d328393e62e4e49ddd56c10a9f4f5fcf0b218ddf..6be5d68567ba7b598644a3feeaa34ae5171c3b97 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -2943,6 +2943,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess + if (this.portalProcess != null) { + if (this.portalProcess.processPortalTeleportation(worldserver, this, this.canUsePortal(false))) { + worldserver.getProfiler().push("portal"); ++ // Paper start - Add EntityPortalReadyEvent ++ ServerLevel changedTarget = worldserver.getServer().getLevel(worldserver.getTypeKey() == net.minecraft.world.level.dimension.LevelStem.NETHER ? Level.OVERWORLD : Level.NETHER); ++ if (this.portalProcess.isSamePortal(((net.minecraft.world.level.block.NetherPortalBlock) net.minecraft.world.level.block.Blocks.NETHER_PORTAL))) { ++ io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), changedTarget == null ? null : changedTarget.getWorld(), org.bukkit.PortalType.NETHER); ++ if (!event.callEvent()) { ++ this.portalProcess = null; ++ worldserver.getProfiler().pop(); ++ return; ++ } ++ } ++ // Paper end - Add EntityPortalReadyEvent + this.setPortalCooldown(); + DimensionTransition dimensiontransition = this.portalProcess.getPortalDestination(worldserver, this); + diff --git a/patches/unapplied/server/0740-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0732-Don-t-use-level-random-in-entity-constructors.patch similarity index 87% rename from patches/unapplied/server/0740-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0732-Don-t-use-level-random-in-entity-constructors.patch index 4d7c249601..cb41bd38c5 100644 --- a/patches/unapplied/server/0740-Don-t-use-level-random-in-entity-constructors.patch +++ b/patches/server/0732-Don-t-use-level-random-in-entity-constructors.patch @@ -9,10 +9,10 @@ should be supported. Some entities (for whatever reason) use the level's random in some places. 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 1817e8876f13695578b0a5b2f75e738b3286db48..b392fda26982517cbc2c04156897184275ce69e5 100644 +index 5448a0f54080ac02bc4ce8ad5645173b67841e1a..30056568a9701fcb664682f329175d3bfee79b60 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -71,7 +71,12 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -72,7 +72,12 @@ public class ItemEntity extends Entity implements TraceableEntity { } public ItemEntity(Level world, double x, double y, double z, ItemStack stack) { @@ -27,10 +27,10 @@ index 1817e8876f13695578b0a5b2f75e738b3286db48..b392fda26982517cbc2c041568971842 public ItemEntity(Level world, double x, double y, double z, ItemStack stack, double velocityX, double velocityY, double velocityZ) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 4772e7978858263702312669f400d3da9c486730..f1f352ec0e51f5db59254841a06c176c5a876fc9 100644 +index 47f2a480f6a4b15e55cedbfa8a58459d33516a97..42bd2d9a1528b6210e4dfb56233062fd97c9743b 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -@@ -42,7 +42,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { +@@ -62,7 +62,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { this(EntityType.TNT, world); this.setPos(x, y, z); diff --git a/patches/unapplied/server/0741-Send-block-entities-after-destroy-prediction.patch b/patches/server/0733-Send-block-entities-after-destroy-prediction.patch similarity index 91% rename from patches/unapplied/server/0741-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0733-Send-block-entities-after-destroy-prediction.patch index df7f376456..7a5062146d 100644 --- a/patches/unapplied/server/0741-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0733-Send-block-entities-after-destroy-prediction.patch @@ -7,10 +7,10 @@ Minecraft's prediction system does not handle block entities, so if we are manua block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index ac2bd55deeef8e14b8fa0db1f2d10e36d045f0e4..7e3d7d76dfe1c2487cd05c1290b856a1a3ccef24 100644 +index 4d024956156aefde7df308642dfd0a40779e0633..6abecaac8407b992d208a9108e11fd4954a4106f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -61,6 +61,8 @@ public class ServerPlayerGameMode { +@@ -63,6 +63,8 @@ public class ServerPlayerGameMode { private BlockPos delayedDestroyPos; private int delayedTickStart; private int lastSentState; @@ -19,7 +19,7 @@ index ac2bd55deeef8e14b8fa0db1f2d10e36d045f0e4..7e3d7d76dfe1c2487cd05c1290b856a1 public ServerPlayerGameMode(ServerPlayer player) { this.gameModeForPlayer = GameType.DEFAULT_MODE; -@@ -191,10 +193,7 @@ public class ServerPlayerGameMode { +@@ -193,10 +195,7 @@ public class ServerPlayerGameMode { this.player.connection.send(new ClientboundBlockUpdatePacket(pos, this.level.getBlockState(pos))); this.debugLogging(pos, false, sequence, "may not interact"); // Update any tile entity data for this block @@ -31,7 +31,7 @@ index ac2bd55deeef8e14b8fa0db1f2d10e36d045f0e4..7e3d7d76dfe1c2487cd05c1290b856a1 // CraftBukkit end return; } -@@ -205,10 +204,7 @@ public class ServerPlayerGameMode { +@@ -207,10 +206,7 @@ public class ServerPlayerGameMode { // Let the client know the block still exists this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos)); // Update any tile entity data for this block @@ -43,7 +43,7 @@ index ac2bd55deeef8e14b8fa0db1f2d10e36d045f0e4..7e3d7d76dfe1c2487cd05c1290b856a1 return; } // CraftBukkit end -@@ -390,10 +386,12 @@ public class ServerPlayerGameMode { +@@ -395,10 +391,12 @@ public class ServerPlayerGameMode { } // Update any tile entity data for this block @@ -57,10 +57,10 @@ index ac2bd55deeef8e14b8fa0db1f2d10e36d045f0e4..7e3d7d76dfe1c2487cd05c1290b856a1 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 01905f6db49ffe578998f4cf6d24311400a3d92b..e711e3ab336b879664a885c4ec9b9e46cf71331d 100644 +index 1e39ec69c0ec26dfac6512bb04587801bbea687e..8564c00ff68148a657fa8ee27e9d92430d6b6389 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1700,8 +1700,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1712,8 +1712,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } // Paper end - Don't allow digging into unloaded chunks diff --git a/patches/unapplied/server/0742-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0734-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 95% rename from patches/unapplied/server/0742-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0734-Warn-on-plugins-accessing-faraway-chunks.patch index 9e95b583d9..ac49cb6ed9 100644 --- a/patches/unapplied/server/0742-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0734-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1408faa8754b2492879f2dbb525aba3bfc8f0421..0fb975d74b8e91617de91dacb206699ff572a38a 100644 +index 481248ef82d4257ca4cc88ab28a1a7946e22aef6..b97427789d6162e16b9c3a56b89b2dd08a04297f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -338,7 +338,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -339,7 +339,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } private static boolean isInWorldBoundsHorizontal(BlockPos pos) { @@ -18,7 +18,7 @@ index 1408faa8754b2492879f2dbb525aba3bfc8f0421..0fb975d74b8e91617de91dacb206699f private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a9106f4777d05928d432e14e4998fd06df5a0786..606797b07bb5eb0ce8fa9d01eaa74e0d6c10b56b 100644 +index 339c2d844126b287adf613a5be1b90f2056dabd9..9391259ffbee1da5c92ad4a253d99617aa57871a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -319,9 +319,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0743-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0735-Custom-Chat-Completion-Suggestions-API.patch similarity index 90% rename from patches/unapplied/server/0743-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0735-Custom-Chat-Completion-Suggestions-API.patch index 6ea6002382..a0a0708957 100644 --- a/patches/unapplied/server/0743-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0735-Custom-Chat-Completion-Suggestions-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 898259c35c25ee034c859e210350efc19c559e3b..7e6ae084118e36eb1be9b5598eeb7e8885179eae 100644 +index 48c1af4bfa97d2c4e8fd695af5b9cefb5398db97..fadfa40fff32b0299d642c89b2dbc3cf4082adb9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -689,6 +689,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -691,6 +691,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end - Add sendOpLevel API diff --git a/patches/unapplied/server/0744-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0736-Add-and-fix-missing-BlockFadeEvents.patch similarity index 98% rename from patches/unapplied/server/0744-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0736-Add-and-fix-missing-BlockFadeEvents.patch index 18f8fbe87f..055406ea3e 100644 --- a/patches/unapplied/server/0744-Add-and-fix-missing-BlockFadeEvents.patch +++ b/patches/server/0736-Add-and-fix-missing-BlockFadeEvents.patch @@ -10,7 +10,7 @@ potentially waterlogged block states fading. Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index a3339b47165814238351d307c729af14d5e5d1ff..2c076a5b23c09f634fa6807c207e5e06e1795e8a 100644 +index 6e7595193275e88c69b82ebbc9f9df636879a03e..3c4949965c0fad3c6200d0fd1e31ebe844ba6e0e 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -92,6 +92,11 @@ public class FrogspawnBlock extends Block { diff --git a/patches/unapplied/server/0745-Collision-API.patch b/patches/server/0737-Collision-API.patch similarity index 88% rename from patches/unapplied/server/0745-Collision-API.patch rename to patches/server/0737-Collision-API.patch index 4a4662382d..6bd05181ad 100644 --- a/patches/unapplied/server/0745-Collision-API.patch +++ b/patches/server/0737-Collision-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Collision API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 4cacc8a8f5d04ea0e1f087194481fa749efa1797..fce1e4bc4898f10c7e8ae788630a55e42e99dd20 100644 +index f6dd8665b9f6e2a8ff396deba8a021e695bedf7e..3c1937b43b6834ae0ffdd8d22ac32a776bc7fb64 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -542,5 +542,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -543,5 +543,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor { return this.getHandle().clip(new net.minecraft.world.level.ClipContext(start, end, net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, net.minecraft.world.phys.shapes.CollisionContext.empty())).getType() == net.minecraft.world.phys.HitResult.Type.MISS; } @@ -22,10 +22,10 @@ index 4cacc8a8f5d04ea0e1f087194481fa749efa1797..fce1e4bc4898f10c7e8ae788630a55e4 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index b6fef2ca5b564c293cb602cb8e300d35dba89b1f..92c80776273f6be43b40686c7ab7dd7371b1c06f 100644 +index 243ac4253a1541dba52126bad96682e43c6f48a1..7c223042595c7cd5ccc554211657d9375833122b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1174,4 +1174,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1191,4 +1191,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().noPhysics; } // Paper end - missing entity api diff --git a/patches/unapplied/server/0746-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0738-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 89% rename from patches/unapplied/server/0746-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0738-Fix-suggest-command-message-for-brigadier-syntax-exc.patch index c145128551..1a84359dae 100644 --- a/patches/unapplied/server/0746-Fix-suggest-command-message-for-brigadier-syntax-exc.patch +++ b/patches/server/0738-Fix-suggest-command-message-for-brigadier-syntax-exc.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix suggest command message for brigadier syntax exceptions This is a bug accidentally introduced in upstream CB diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 779fee2f9b819124a01b9f8d2b7ed0d5f2accf6c..3d6e19c2078a87983a849e6d627cba0609a556cc 100644 +index 3141e033706599aae9a89a0975afb3954424df48..ec8ea29a71e74255660e3c084c3a708cf241d0c9 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -388,7 +388,7 @@ public class Commands { +@@ -386,7 +386,7 @@ public class Commands { if (commandsyntaxexception.getInput() != null && commandsyntaxexception.getCursor() >= 0) { int i = Math.min(commandsyntaxexception.getInput().length(), commandsyntaxexception.getCursor()); MutableComponent ichatmutablecomponent = Component.empty().withStyle(ChatFormatting.GRAY).withStyle((chatmodifier) -> { diff --git a/patches/unapplied/server/0747-Block-Ticking-API.patch b/patches/server/0739-Block-Ticking-API.patch similarity index 100% rename from patches/unapplied/server/0747-Block-Ticking-API.patch rename to patches/server/0739-Block-Ticking-API.patch diff --git a/patches/unapplied/server/0748-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0740-Add-Velocity-IP-Forwarding-Support.patch similarity index 95% rename from patches/unapplied/server/0748-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0740-Add-Velocity-IP-Forwarding-Support.patch index b804c1efd6..a1df897f75 100644 --- a/patches/unapplied/server/0748-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0740-Add-Velocity-IP-Forwarding-Support.patch @@ -106,10 +106,10 @@ index 0000000000000000000000000000000000000000..3c31ff3330c2e925e205c0c9ff4f0b83 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index bbbadf5284907531eef761a738c3adf5305bd08f..c58e24e0138495748564ff8a08782ffd6522fa38 100644 +index 585d3e51b4af87327fc2bc64a49f09732a8c61ab..aa39bdb0a4ba8fedf5052ea9700afa7d4d2a4300 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -287,13 +287,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -291,13 +291,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface this.server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.STARTUP); // CraftBukkit end @@ -134,10 +134,10 @@ index bbbadf5284907531eef761a738c3adf5305bd08f..c58e24e0138495748564ff8a08782ffd DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 9bcded0466f3b10fafd709edc44c60f85cb48b7f..cb006ae0e5be2f1d31261bdd36964229ec44416d 100644 +index e9cd90b6bb2f57d605323add43f12962bd7cb843..0fc30ce511f449d2a3ddab28c86f7e388223ece1 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -84,6 +84,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -86,6 +86,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, private final boolean transferred; private ServerPlayer player; // CraftBukkit public boolean iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation = false; // Paper - username validation overriding @@ -145,7 +145,7 @@ index 9bcded0466f3b10fafd709edc44c60f85cb48b7f..cb006ae0e5be2f1d31261bdd36964229 public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection, boolean transferred) { this.state = ServerLoginPacketListenerImpl.State.HELLO; -@@ -182,6 +183,16 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -184,6 +185,16 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, this.state = ServerLoginPacketListenerImpl.State.KEY; this.connection.send(new ClientboundHelloPacket("", this.server.getKeyPair().getPublic().getEncoded(), this.challenge, true)); } else { @@ -162,7 +162,7 @@ index 9bcded0466f3b10fafd709edc44c60f85cb48b7f..cb006ae0e5be2f1d31261bdd36964229 // CraftBukkit start // Paper start - Cache authenticator threads authenticatorPool.execute(new Runnable() { -@@ -334,6 +345,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -336,6 +347,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, // CraftBukkit start private GameProfile callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { // Paper - Add more fields to AsyncPlayerPreLoginEvent @@ -175,7 +175,7 @@ index 9bcded0466f3b10fafd709edc44c60f85cb48b7f..cb006ae0e5be2f1d31261bdd36964229 String playerName = gameprofile.getName(); java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); java.util.UUID uniqueId = gameprofile.getId(); -@@ -379,6 +396,51 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -381,6 +398,51 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) { @@ -228,10 +228,10 @@ index 9bcded0466f3b10fafd709edc44c60f85cb48b7f..cb006ae0e5be2f1d31261bdd36964229 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8b629647c15721207f14081832bea6a702359b77..e135d634f4336a23e90fd94b4e4c261bfc0cffe9 100644 +index 873daccd9c9521e75dcca5e5070ffcbbac00956a..0aebc39477e4302c2660786011633164b6e7cc9d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -833,7 +833,7 @@ public final class CraftServer implements Server { +@@ -836,7 +836,7 @@ public final class CraftServer implements Server { @Override public long getConnectionThrottle() { // Spigot Start - Automatically set connection throttle for bungee configurations diff --git a/patches/unapplied/server/0749-Add-NamespacedKey-biome-methods.patch b/patches/server/0741-Add-NamespacedKey-biome-methods.patch similarity index 95% rename from patches/unapplied/server/0749-Add-NamespacedKey-biome-methods.patch rename to patches/server/0741-Add-NamespacedKey-biome-methods.patch index 1baad94c5c..d981229c6f 100644 --- a/patches/unapplied/server/0749-Add-NamespacedKey-biome-methods.patch +++ b/patches/server/0741-Add-NamespacedKey-biome-methods.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add NamespacedKey biome methods Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 83730eac9887bbf9bd5284676ec9a0509ec14a04..ff2c6a7b4b8ae2f7e9e1c84e1a3bd04e0484d075 100644 +index 1a46245fed7a5fca532df7e3febb22f5effca764..7272f154644366c3c467b265aadc59b879a7b7bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -595,6 +595,21 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/unapplied/server/0750-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0742-Fix-plugin-loggers-on-server-shutdown.patch similarity index 90% rename from patches/unapplied/server/0750-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0742-Fix-plugin-loggers-on-server-shutdown.patch index bc91f0fc22..6914ddec62 100644 --- a/patches/unapplied/server/0750-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0742-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,10 +37,10 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 91771afb413b56ff84697f4d1264e2e97ee5c132..b2a46033d522f3122041cc2966105159c8869fdc 100644 +index 4b44447360b75b6dbe93d8176dcba2db02d77f1e..ba382397e39311598d044faf6b74665810d2e510 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1232,6 +1232,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e98ece3b5af0d1ffe6dddce4e342cd2858166ba3..160347d036d6c8eaf48082c1155234e1a8df54c3 100644 +index 81302c76a8a104a52a162caf9f6a46b31ba76819..0f330b53fb62907a79b436ce90a1466e33375b3a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3126,37 +3126,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3129,37 +3129,15 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getProfiler().pop(); this.level().getProfiler().push("rangeChecks"); @@ -54,10 +54,10 @@ index e98ece3b5af0d1ffe6dddce4e342cd2858166ba3..160347d036d6c8eaf48082c1155234e1 this.level().getProfiler().pop(); this.animStep += f2; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index ccb7aa341e3087255bce1f6fb953d33584147fd3..4c6fbf19d6bb01e67c6141aea757fae434ee8233 100644 +index ff6007bbf8361db7967b6bf621b27a1d23102e77..d147f3cc1af28c384005c1c20e37bb588588c88d 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -298,13 +298,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -310,13 +310,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { } protected static float lerpRotation(float prevRot, float newRot) { diff --git a/patches/unapplied/server/0752-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0744-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 92% rename from patches/unapplied/server/0752-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0744-Fire-EntityChangeBlockEvent-in-more-places.patch index d21cfe9e22..d281ac226e 100644 --- a/patches/unapplied/server/0752-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0744-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -80,26 +80,26 @@ index bf5015c4bb68e5c46313bab1e59c0a4d45053b73..0471d9c85af02133f99cca4e181b83b5 }); world.levelEvent(3002, blockposition1, -1); diff --git a/src/main/java/net/minecraft/world/item/AxeItem.java b/src/main/java/net/minecraft/world/item/AxeItem.java -index bc689df6b43d42566aed875de6aa0081341c5c44..9fd2d97ff0e05578a3e6a0b86dc1974691845c5d 100644 +index c227784544e52ee2c75ab1a2181e0b0ba7246f4b..f005ea92449cf5e249ff64f4791c3bc6b8635528 100644 --- a/src/main/java/net/minecraft/world/item/AxeItem.java +++ b/src/main/java/net/minecraft/world/item/AxeItem.java -@@ -61,6 +61,11 @@ public class AxeItem extends DiggerItem { - return InteractionResult.PASS; - } else { - ItemStack itemStack = context.getItemInHand(); -+ // Paper start - EntityChangeBlockEvent -+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(player, blockPos, optional.get())) { -+ return InteractionResult.PASS; -+ } -+ // Paper end - if (player instanceof ServerPlayer) { - CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger((ServerPlayer)player, blockPos, itemStack); - } +@@ -65,6 +65,11 @@ public class AxeItem extends DiggerItem { + return InteractionResult.PASS; + } else { + ItemStack itemStack = context.getItemInHand(); ++ // Paper start - EntityChangeBlockEvent ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(player, blockPos, optional.get())) { ++ return InteractionResult.PASS; ++ } ++ // Paper end + if (player instanceof ServerPlayer) { + CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger((ServerPlayer)player, blockPos, itemStack); + } diff --git a/src/main/java/net/minecraft/world/item/EnderEyeItem.java b/src/main/java/net/minecraft/world/item/EnderEyeItem.java -index 37cfb9694dc06f693b7b54f20bc31dfd9f95c76c..4d8c98db89ae32baa407830d9380ece3b34c642a 100644 +index 391579b515c5a07066f82b33c4f9ef8ee1d05530..d8ce44a180f848f4c9c04967470c4359af979b2f 100644 --- a/src/main/java/net/minecraft/world/item/EnderEyeItem.java +++ b/src/main/java/net/minecraft/world/item/EnderEyeItem.java -@@ -44,6 +44,11 @@ public class EnderEyeItem extends Item { +@@ -46,6 +46,11 @@ public class EnderEyeItem extends Item { return InteractionResult.SUCCESS; } else { BlockState iblockdata1 = (BlockState) iblockdata.setValue(EndPortalFrameBlock.HAS_EYE, true); @@ -131,7 +131,7 @@ index decabf6fccaca3d1bfeba679ac71677d33315f5e..14d37bf64af719eae3ea154ea7f952cc CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger((ServerPlayer)player, blockPos, itemStack); } diff --git a/src/main/java/net/minecraft/world/item/PotionItem.java b/src/main/java/net/minecraft/world/item/PotionItem.java -index 042a9cf9c15fd30bc30e03d0e0311c70e40e6950..db038cb423c3b951890c81d833aa77ebcea3304f 100644 +index 92fa6523f2bba105a74fff228e36e58666ed56ae..d147b24bb57b322d3f5f4a9eb8cfef2acdd9e0f5 100644 --- a/src/main/java/net/minecraft/world/item/PotionItem.java +++ b/src/main/java/net/minecraft/world/item/PotionItem.java @@ -109,6 +109,12 @@ public class PotionItem extends Item { @@ -183,24 +183,23 @@ index c0e96284bb470353c0e54ad4e0c2205017913e61..24f6a158e4759aac3be8da4cf5e0d40b level.gameEvent(GameEvent.BLOCK_CHANGE, blockPos, GameEvent.Context.of(player, blockState3)); if (player != null) { diff --git a/src/main/java/net/minecraft/world/level/block/CakeBlock.java b/src/main/java/net/minecraft/world/level/block/CakeBlock.java -index 430312f4e67a253465c54e3fe5e5cfad365cfa22..ac40246f0bb4903b6623c02d7a3512b5208b264f 100644 +index d72f4a01ca07df8a9678b3ca4707e5363e482283..43e306b5ef00b39923c1597f212b4a07fb95f1ca 100644 --- a/src/main/java/net/minecraft/world/level/block/CakeBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CakeBlock.java -@@ -64,7 +64,12 @@ public class CakeBlock extends Block { - +@@ -65,6 +65,12 @@ public class CakeBlock extends Block { if (block instanceof CandleBlock) { CandleBlock candleblock = (CandleBlock) block; -- + + // Paper start - call change block event + if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(player, pos, CandleCakeBlock.byCandle(candleblock))) { + player.containerMenu.sendAllDataToRemote(); // update inv because candle could decrease + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + // Paper end - call change block event - if (!player.isCreative()) { - stack.shrink(1); - } -@@ -99,6 +104,14 @@ public class CakeBlock extends Block { + stack.consume(1, player); + world.playSound((Player) null, pos, SoundEvents.CAKE_ADD_CANDLE, SoundSource.BLOCKS, 1.0F, 1.0F); + world.setBlockAndUpdate(pos, CandleCakeBlock.byCandle(candleblock)); +@@ -96,6 +102,14 @@ public class CakeBlock extends Block { if (!player.canEat(false)) { return InteractionResult.PASS; } else { @@ -215,7 +214,7 @@ index 430312f4e67a253465c54e3fe5e5cfad365cfa22..ac40246f0bb4903b6623c02d7a3512b5 player.awardStat(Stats.EAT_CAKE_SLICE); // CraftBukkit start // entityhuman.getFoodData().eat(2, 0.1F); -@@ -112,7 +125,7 @@ public class CakeBlock extends Block { +@@ -109,7 +123,7 @@ public class CakeBlock extends Block { ((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity().sendHealthUpdate(); // CraftBukkit end diff --git a/patches/unapplied/server/0753-Missing-eating-regain-reason.patch b/patches/server/0745-Missing-eating-regain-reason.patch similarity index 83% rename from patches/unapplied/server/0753-Missing-eating-regain-reason.patch rename to patches/server/0745-Missing-eating-regain-reason.patch index b7a24c42cf..ac2e750c71 100644 --- a/patches/unapplied/server/0753-Missing-eating-regain-reason.patch +++ b/patches/server/0745-Missing-eating-regain-reason.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Missing eating regain reason diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 118be62539bb0266c2e89bd68abbc4a975fcd833..07559b9629d4ecb40b511256f400a781e39820e0 100644 +index 2ed442c8d36f285420cf84a956e90b6036384ce0..23d4dcc82115fd1a0a77565a0472304042d5f12d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -408,7 +408,7 @@ public class Cat extends TamableAnimal implements VariantHolder 0.0F) { diff --git a/patches/unapplied/server/0754-Missing-effect-cause.patch b/patches/server/0746-Missing-effect-cause.patch similarity index 85% rename from patches/unapplied/server/0754-Missing-effect-cause.patch rename to patches/server/0746-Missing-effect-cause.patch index 17172c3b36..a56cd781d5 100644 --- a/patches/unapplied/server/0754-Missing-effect-cause.patch +++ b/patches/server/0746-Missing-effect-cause.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Missing effect cause diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 0a6ebd5c5fcad420659f3ade3280beaf6ac115f2..a8cc6ddbf45370fe632e5c5fb7ceef3d299e62a4 100644 +index 3dec72f407ca4af53ac5fe32f05326638af05474..01a0731e92d39c8718538244e34a271fb8717fc2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -@@ -407,7 +407,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder T launchProjectile(Class projectile, Vector velocity) { @@ -55,7 +55,7 @@ index faab60e735aca230cb4c0b7db21e6a9a237daf6e..89401fc942c151941790b1152a35357a Preconditions.checkArgument(this.getBlock().getType() == Material.DISPENSER, "Block is no longer dispenser"); // Copied from BlockDispenser.dispense() BlockSource sourceblock = new BlockSource((ServerLevel) this.dispenserBlock.getLevel(), this.dispenserBlock.getBlockPos(), this.dispenserBlock.getBlockState(), this.dispenserBlock); -@@ -145,6 +152,11 @@ public class CraftBlockProjectileSource implements BlockProjectileSource { +@@ -140,6 +147,11 @@ public class CraftBlockProjectileSource implements BlockProjectileSource { if (velocity != null) { ((T) launch.getBukkitEntity()).setVelocity(velocity); } diff --git a/patches/unapplied/server/0757-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0749-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/unapplied/server/0757-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0749-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/unapplied/server/0758-Configurable-chat-thread-limit.patch b/patches/server/0750-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/unapplied/server/0758-Configurable-chat-thread-limit.patch rename to patches/server/0750-Configurable-chat-thread-limit.patch diff --git a/patches/unapplied/server/0759-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0751-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 91% rename from patches/unapplied/server/0759-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0751-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch index 04df7af326..4d07ca9402 100644 --- a/patches/unapplied/server/0759-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch +++ b/patches/server/0751-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type TODO: Remove in 1.21? diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 8ae3b6bb5daf4d0a4a429868d1dea700c3ee129c..6fdea5b2f82c40c03091b7bd18ebcae20a3458ca 100644 +index 0d5ce79dc8fb3b1677e09d663608a5cb5224de2f..3b71aa01d98f0f8d76fbb36986f74c9a6768855b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -384,6 +384,12 @@ public class Commodore { +@@ -389,6 +389,12 @@ public class Commodore { super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, runtimeCbPkgPrefix() + "advancement/CraftAdvancement", "getDisplay0", desc, false); return; } diff --git a/patches/unapplied/server/0760-fix-Jigsaw-block-kicking-user.patch b/patches/server/0752-fix-Jigsaw-block-kicking-user.patch similarity index 55% rename from patches/unapplied/server/0760-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0752-fix-Jigsaw-block-kicking-user.patch index 0c52c47ce9..6e1aef94c8 100644 --- a/patches/unapplied/server/0760-fix-Jigsaw-block-kicking-user.patch +++ b/patches/server/0752-fix-Jigsaw-block-kicking-user.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix Jigsaw block kicking user diff --git a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java -index 3a80b0e9c0e12a84034aadebd0ff6f6b51d0d2ea..922592f2073eaea8ca361a3a1efcda8b18bea21c 100644 +index 0083602f8c8826e247fecbdb5cdb6548ff6180ce..675f6b2932e036d2eedf065fd2db4bf9f0e4250d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java @@ -137,7 +137,12 @@ public class JigsawBlockEntity extends BlockEntity { @@ -22,21 +22,3 @@ index 3a80b0e9c0e12a84034aadebd0ff6f6b51d0d2ea..922592f2073eaea8ca361a3a1efcda8b JigsawPlacement.generateJigsaw(world, holder, this.target, maxDepth, blockPos, keepJigsaws); } -diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java b/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java -index 23ac340661cf0f5940c0d6333c74a9c7b36dca26..7ba11f734bd73dde165d155a633b47dac979a8e9 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool.java -@@ -97,7 +97,13 @@ public class StructureTemplatePool { - } - - public StructurePoolElement getRandomTemplate(RandomSource random) { -+ //Paper start - Prevent random.nextInt throwing an IllegalArgumentException -+ if (this.templates.size() == 0) { -+ return EmptyPoolElement.INSTANCE; -+ } else { - return this.templates.get(random.nextInt(this.templates.size())); -+ } -+ // Paper end - } - - public List getShuffledTemplates(RandomSource random) { diff --git a/patches/unapplied/server/0761-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0753-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/unapplied/server/0761-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0753-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/unapplied/server/0762-Add-getDrops-to-BlockState.patch b/patches/server/0754-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/unapplied/server/0762-Add-getDrops-to-BlockState.patch rename to patches/server/0754-Add-getDrops-to-BlockState.patch diff --git a/patches/unapplied/server/0763-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0755-Fix-a-bunch-of-vanilla-bugs.patch similarity index 71% rename from patches/unapplied/server/0763-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0755-Fix-a-bunch-of-vanilla-bugs.patch index a8aac72778..881132c6fa 100644 --- a/patches/unapplied/server/0763-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0755-Fix-a-bunch-of-vanilla-bugs.patch @@ -22,9 +22,6 @@ https://bugs.mojang.com/browse/MC-147659 https://bugs.mojang.com/browse/MC-179072 Creepers do not defuse when switching from Survival to Creative/Spectator -https://bugs.mojang.com/browse/MC-191591 - Fix items equipped on AbstractHorse losing NBT - https://bugs.mojang.com/browse/MC-259571 Fix changeGameModeForPlayer to use gameModeForPlayer @@ -43,9 +40,6 @@ https://bugs.mojang.com/browse/MC-210802 https://bugs.mojang.com/browse/MC-123848 Fixes item frames dropping items above when pointing down -https://bugs.mojang.com/browse/MC-84789 - Fix wild wolves not considering bones interesting - https://bugs.mojang.com/browse/MC-174630 Fix secondary beacon effect remaining after switching effect @@ -64,19 +58,6 @@ public net/minecraft/world/entity/Mob leashInfoTag Co-authored-by: William Blake Galbreath Co-authored-by: Spottedleaf -diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index f880f9faa1e5660853f28c0e2daf4ab6bc6a55fd..2bb3d1f0b89ef5b9b1f9f8da1070d21168830645 100644 ---- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -+++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -@@ -241,7 +241,7 @@ public interface DispenseItemBehavior { - } - } - // CraftBukkit end -- ((Saddleable) list.get(0)).equipSaddle(SoundSource.BLOCKS); -+ ((Saddleable) list.get(0)).equipSaddle(SoundSource.BLOCKS, CraftItemStack.asNMSCopy(event.getItem())); // Paper - Fix saddles losing nbt data - MC-191591 - // itemstack.shrink(1); // CraftBukkit - handled above - this.setSuccess(true); - return stack; diff --git a/src/main/java/net/minecraft/server/commands/DeOpCommands.java b/src/main/java/net/minecraft/server/commands/DeOpCommands.java index 0283f26151488d715dc823a0008c9a37ef6740fb..d98447e58233745665f0833196226077d972cc2a 100644 --- a/src/main/java/net/minecraft/server/commands/DeOpCommands.java @@ -104,10 +85,10 @@ index 6854ca4d4fec2b4fa541c3fabf63787665572609..e7b444a10b244828827b3c66c5346520 } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 3532febc8e34c8436a69a4c4b472b1776f21ee48..de19a5ea96fa38621513e970e04d153576f4f6ae 100644 +index cf7c7813d528429a18dc25051df7fc06dc159930..ef46d904fa49a779c235971883380b3e33e6dba1 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1252,7 +1252,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1091,7 +1091,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end } @@ -117,10 +98,10 @@ index 3532febc8e34c8436a69a4c4b472b1776f21ee48..de19a5ea96fa38621513e970e04d1535 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e42dd32e277d8071a2c1b4411bc222a62023102d..5a1493a981ba99f287fc70193bfdf04f9a01ff89 100644 +index e1e0cf97d2badd26a9391bf0f758edae262a14c2..b9002600a3efca0079abe238a6d9b43693b6af8b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -776,7 +776,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -777,7 +777,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } else { AABB axisalignedbb = AABB.encapsulatingFullBlocks(blockposition1, new BlockPos(blockposition1.atY(this.getMaxBuildHeight()))).inflate(3.0D); List list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> { @@ -129,32 +110,11 @@ index e42dd32e277d8071a2c1b4411bc222a62023102d..5a1493a981ba99f287fc70193bfdf04f }); if (!list.isEmpty()) { -diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d0a7bcc0dde8b2a9543cf4c0c8d35ab042fb4e3b..5647a2c7788b09eb8b14286b0ded0a64c244e25b 100644 ---- a/src/main/java/net/minecraft/server/level/ServerPlayer.java -+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -445,14 +445,14 @@ public class ServerPlayer extends Player { - BlockPos blockposition1 = PlayerRespawnLogic.getOverworldRespawnPos(world, blockposition.getX() + j2 - i, blockposition.getZ() + k2 - i); - - if (blockposition1 != null) { -- this.moveTo(blockposition1, 0.0F, 0.0F); -+ this.moveTo(blockposition1, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored - if (world.noCollision((Entity) this)) { - break; - } - } - } - } else { -- this.moveTo(blockposition, 0.0F, 0.0F); -+ this.moveTo(blockposition, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored - - while (!world.noCollision((Entity) this) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { - this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 7e3d7d76dfe1c2487cd05c1290b856a1a3ccef24..7c1d3b042291a42f13ff32e9a9c6e07da47277ae 100644 +index 6abecaac8407b992d208a9108e11fd4954a4106f..03d89f326d320c5d778c3d1e2db7d6b88753faec 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -91,7 +91,7 @@ public class ServerPlayerGameMode { +@@ -93,7 +93,7 @@ public class ServerPlayerGameMode { return event; // Paper - Expand PlayerGameModeChangeEvent } // CraftBukkit end @@ -164,10 +124,19 @@ index 7e3d7d76dfe1c2487cd05c1290b856a1a3ccef24..7c1d3b042291a42f13ff32e9a9c6e07d this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c76143eadbcb434d4468b4d7c32d71d646788341..5f40469fa423cbbb60dbfd0ff75d62a2267d29b1 100644 +index fc96b6e2a279ce6a9fff2a4171604da9e5eeb660..283ed3e0b0ad26c57edcfcadd4d600e67b75eca9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -709,8 +709,10 @@ public abstract class PlayerList { +@@ -260,7 +260,7 @@ public abstract class PlayerList { + } + if (optional.isEmpty() || invalidPlayerWorld[0]) { + // Paper end - reset to main world spawn if first spawn or invalid world +- player.moveTo(player.adjustSpawnLocation(worldserver1, worldserver1.getSharedSpawnPos()).getBottomCenter(), 0.0F, 0.0F); ++ player.moveTo(player.adjustSpawnLocation(worldserver1, worldserver1.getSharedSpawnPos()).getBottomCenter(), worldserver1.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored + } + // Paper end - Entity#getEntitySpawnReason + player.setServerLevel(worldserver1); +@@ -703,8 +703,10 @@ public abstract class PlayerList { Player player = entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player, loginlistener.connection.hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.connection.channel.remoteAddress()).getAddress()); @@ -180,35 +149,6 @@ index c76143eadbcb434d4468b4d7c32d71d646788341..5f40469fa423cbbb60dbfd0ff75d62a2 ichatmutablecomponent = Component.translatable("multiplayer.disconnect.banned.reason", gameprofilebanentry.getReason()); if (gameprofilebanentry.getExpires() != null) { -diff --git a/src/main/java/net/minecraft/world/entity/Saddleable.java b/src/main/java/net/minecraft/world/entity/Saddleable.java -index effe4c4fb37fe13aece70cdef4966047d4719af9..7152674d3f3fb98198585cb5ece2bb88877345f9 100644 ---- a/src/main/java/net/minecraft/world/entity/Saddleable.java -+++ b/src/main/java/net/minecraft/world/entity/Saddleable.java -@@ -9,6 +9,11 @@ public interface Saddleable { - boolean isSaddleable(); - - void equipSaddle(@Nullable SoundSource sound); -+ // Paper start - Fix saddles losing nbt data - MC-191591 -+ default void equipSaddle(final @Nullable SoundSource sound, final @Nullable net.minecraft.world.item.ItemStack stack) { -+ this.equipSaddle(sound); -+ } -+ // Paper end - - default SoundEvent getSaddleSoundEvent() { - return SoundEvents.HORSE_SADDLE; -diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java -index 95ec11bfd4df6c53d6a4828f55c621cd08b0e666..f1b28965f6fe785e6e3a24fdb6db6676701338b9 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java -+++ b/src/main/java/net/minecraft/world/entity/ai/goal/BegGoal.java -@@ -62,7 +62,7 @@ public class BegGoal extends Goal { - private boolean playerHoldingInteresting(Player player) { - for (InteractionHand interactionHand : InteractionHand.values()) { - ItemStack itemStack = player.getItemInHand(interactionHand); -- if (this.wolf.isTame() && itemStack.is(Items.BONE)) { -+ if (!this.wolf.isTame() && itemStack.is(Items.BONE)) { // Paper - Fix MC-84789 - return true; - } - diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java index 784a894688f98f9d0368a36d456c5c94e1ee3695..a85885ee51df585fa11ae9f8fcd67ff2a71c5a18 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java @@ -275,30 +215,11 @@ index 923806900ef6248576e71260d40e9caf2c8943e8..02e49c7ae5e120302b6479cf3e3934b9 this.level().playSound((Player) null, (Entity) this, this.getEatingSound(itemstack), SoundSource.NEUTRAL, 1.0F, Mth.randomBetween(this.level().random, 0.8F, 1.2F)); } -diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 57952ad65c905265799ba2d8f99cc4cf4aa69f94..8cae4e154ca07493aba9acadd4ff7150d7ae4f67 100644 ---- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -@@ -321,7 +321,13 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, - - @Override - public void equipSaddle(@Nullable SoundSource sound) { -- this.inventory.setItem(0, new ItemStack(Items.SADDLE)); -+ // Paper start - Fix saddles losing nbt data - MC-191591 -+ this.equipSaddle(sound, null); -+ } -+ @Override -+ public void equipSaddle(@Nullable SoundSource sound, @Nullable ItemStack stack) { -+ this.inventory.setItem(0, stack != null ? stack : new ItemStack(Items.SADDLE)); -+ // Paper end - } - - public void equipBodyArmor(Player player, ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index bb22b84c32848869967a47a60f9d8a0629a59e2a..cb3de05dba7daa925b6fa7e0c7bbb8e3c53b51f4 100644 +index 3c6edc5ea44b7ec15d8fc7a2dca95a11a0d6108a..ba4e0ad7c7c2731d61ec7f60f19d7e9ec31a28ba 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -@@ -295,6 +295,14 @@ public class ItemFrame extends HangingEntity { +@@ -260,6 +260,14 @@ public class ItemFrame extends HangingEntity { return (ItemStack) this.getEntityData().get(ItemFrame.DATA_ITEM); } @@ -311,8 +232,8 @@ index bb22b84c32848869967a47a60f9d8a0629a59e2a..cb3de05dba7daa925b6fa7e0c7bbb8e3 + // Paper end + @Nullable - public MapId getFramedMapId() { - return (MapId) this.getItem().get(DataComponents.MAP_ID); + public MapId getFramedMapId(ItemStack itemstack) { + return (MapId) itemstack.get(DataComponents.MAP_ID); diff --git a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java index 08dcc94c9eca9a5fd61055f05b7737ba5840b5bf..e0e5046c84941a8d17e18c177f3daea9cb631940 100644 --- a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java @@ -343,19 +264,6 @@ index 5b6133f6758d322713321b7e918db0c3e0d4be51..6173c689013ab02c83ca6ff1fde2b1e4 if (this.paymentSlot.hasItem()) { // Paper start - Add PlayerChangeBeaconEffectEvent io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent event = new io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent((org.bukkit.entity.Player) this.player.player.getBukkitEntity(), convert(primary), convert(secondary), this.access.getLocation().getBlock()); -diff --git a/src/main/java/net/minecraft/world/item/SaddleItem.java b/src/main/java/net/minecraft/world/item/SaddleItem.java -index a569b404ece21fa9571e73947334f5aa57a8080c..51d350add4ca1756cb9e364e066bbee7949ffb8c 100644 ---- a/src/main/java/net/minecraft/world/item/SaddleItem.java -+++ b/src/main/java/net/minecraft/world/item/SaddleItem.java -@@ -17,7 +17,7 @@ public class SaddleItem extends Item { - public InteractionResult interactLivingEntity(ItemStack stack, Player user, LivingEntity entity, InteractionHand hand) { - if (entity instanceof Saddleable saddleable && entity.isAlive() && !saddleable.isSaddled() && saddleable.isSaddleable()) { - if (!user.level().isClientSide) { -- saddleable.equipSaddle(SoundSource.NEUTRAL); -+ saddleable.equipSaddle(SoundSource.NEUTRAL, stack.copyWithCount(1)); // Paper - Fix saddles losing nbt data - MC-191591 - entity.level().gameEvent(entity, GameEvent.EQUIP, entity.position()); - stack.shrink(1); - } diff --git a/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java b/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java index cd90129be2cf8095abd80528e5de3bbe05022a9d..fad69dfc20574ab23634b14252b50929cca75b21 100644 --- a/src/main/java/net/minecraft/world/level/block/AzaleaBlock.java @@ -386,10 +294,10 @@ index fa5366961861370c2366e6f0ff026a6d65128316..a5c7c2d24498c66159316a4f92677625 return; } diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 614ddebb92aba91694951fc22900fed362b3426d..d19e799491f790ca967a0731ef95a06993a7ab9a 100644 +index 35061cb17850789e40b0e4bca453df92f1178546..6d9bb60fd6d12933df960c984bc57084bd2f53db 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -645,13 +645,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -648,13 +648,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @Override public void fillStackedContents(StackedContents finder) { @@ -408,7 +316,7 @@ index 614ddebb92aba91694951fc22900fed362b3426d..d19e799491f790ca967a0731ef95a069 } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index a11f487197274da7cf3217f24e1cae2a343a7331..edb7d981bb443b5b395a1985fb7cfd96009d0b0a 100644 +index e124f040386e130aebd7135434c4f06d130d28f6..f8d432ef21e59796da4b11c9748ba151c54e5e04 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -295,7 +295,11 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -423,3 +331,25 @@ index a11f487197274da7cf3217f24e1cae2a343a7331..edb7d981bb443b5b395a1985fb7cfd96 super.setRemoved(); } +diff --git a/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java b/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java +index 1595a379875abc718659f6b1ce7c64c6383b1bc8..788f79dc38012595b385ee6a449daa0bccf0079a 100644 +--- a/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java ++++ b/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java +@@ -39,7 +39,7 @@ public record DimensionTransition(ServerLevel newLevel, Vec3 pos, Vec3 speed, fl + } + + public DimensionTransition(ServerLevel worldserver, Entity entity, DimensionTransition.PostDimensionTransition dimensiontransition_a, PlayerTeleportEvent.TeleportCause cause) { +- this(worldserver, findAdjustedSharedSpawnPos(worldserver, entity), Vec3.ZERO, 0.0F, 0.0F, false, dimensiontransition_a, cause); ++ this(worldserver, findAdjustedSharedSpawnPos(worldserver, entity), Vec3.ZERO, worldserver.getSharedSpawnAngle(), 0.0F, false, dimensiontransition_a, cause); // Paper - MC-200092 - fix spawn pos yaw being ignored + // CraftBukkit end + } + +@@ -55,7 +55,7 @@ public record DimensionTransition(ServerLevel newLevel, Vec3 pos, Vec3 speed, fl + } + + public static DimensionTransition missingRespawnBlock(ServerLevel world, Entity entity, DimensionTransition.PostDimensionTransition postDimensionTransition) { +- return new DimensionTransition(world, findAdjustedSharedSpawnPos(world, entity), Vec3.ZERO, 0.0F, 0.0F, true, postDimensionTransition); ++ return new DimensionTransition(world, findAdjustedSharedSpawnPos(world, entity), Vec3.ZERO, world.getSharedSpawnAngle(), 0.0F, true, postDimensionTransition); // Paper - MC-200092 - fix spawn pos yaw being ignored + } + + private static Vec3 findAdjustedSharedSpawnPos(ServerLevel world, Entity entity) { diff --git a/patches/unapplied/server/0764-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0756-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 87% rename from patches/unapplied/server/0764-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0756-Remove-unnecessary-onTrackingStart-during-navigation.patch index c764e834e8..382d4cc3a7 100644 --- a/patches/unapplied/server/0764-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0756-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5a1493a981ba99f287fc70193bfdf04f9a01ff89..9f7088691c3ab848c5095b6109d14eae947ace99 100644 +index b9002600a3efca0079abe238a6d9b43693b6af8b..15607da2883653cd757a3220ddf79833afd39330 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2216,7 +2216,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2184,7 +2184,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (entity instanceof Mob entityinsentient) { @@ -17,7 +17,7 @@ index 5a1493a981ba99f287fc70193bfdf04f9a01ff89..9f7088691c3ab848c5095b6109d14eae String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); -@@ -2296,7 +2296,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2264,7 +2264,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (entity instanceof Mob entityinsentient) { diff --git a/patches/unapplied/server/0765-Fix-custom-piglin-loved-items.patch b/patches/server/0757-Fix-custom-piglin-loved-items.patch similarity index 93% rename from patches/unapplied/server/0765-Fix-custom-piglin-loved-items.patch rename to patches/server/0757-Fix-custom-piglin-loved-items.patch index 043217eed5..a09a51f7ea 100644 --- a/patches/unapplied/server/0765-Fix-custom-piglin-loved-items.patch +++ b/patches/server/0757-Fix-custom-piglin-loved-items.patch @@ -7,7 +7,7 @@ Upstream didn't modify the isLovedItem check in wantsToPickup so piglins never actually tried to pickup interestItems diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index 96d8f0fea969fa14bae77afc60c6a64032ca4957..d69b92849733f5228ac65e3feefd6838bb5b9a74 100644 +index d601bff8e8f62af78791ad357b51b92faf04e55f..d3d50ec0f4466464c048449d8a844569c447d59b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -403,7 +403,7 @@ public class PiglinAi { diff --git a/patches/unapplied/server/0766-EntityPickupItemEvent-fixes.patch b/patches/server/0758-EntityPickupItemEvent-fixes.patch similarity index 90% rename from patches/unapplied/server/0766-EntityPickupItemEvent-fixes.patch rename to patches/server/0758-EntityPickupItemEvent-fixes.patch index 5780237591..0b1957bdd1 100644 --- a/patches/unapplied/server/0766-EntityPickupItemEvent-fixes.patch +++ b/patches/server/0758-EntityPickupItemEvent-fixes.patch @@ -12,10 +12,10 @@ Fires the event when a Raider tries to pick up a raid banner to become raid leader. diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 20d9690127aed9c8ae2632bcf497ba0e473b7bea..a8ab486c7e11ec137da48174af6f1030dfd48056 100644 +index d2dfa49e124460f4762b950f9ded106d2ec15dc2..bc58323801ee16fe9b63c21332144ec002a902f2 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -413,7 +413,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -412,7 +412,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override protected void pickUpItem(ItemEntity item) { @@ -25,7 +25,7 @@ index 20d9690127aed9c8ae2632bcf497ba0e473b7bea..a8ab486c7e11ec137da48174af6f1030 } diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index d69b92849733f5228ac65e3feefd6838bb5b9a74..e25af9af8f87e6762716749c367658bf6bda9e34 100644 +index d3d50ec0f4466464c048449d8a844569c447d59b..0192b62fd66621a72fcf2f20896647e5950ba993 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -242,11 +242,16 @@ public class PiglinAi { @@ -47,10 +47,10 @@ index d69b92849733f5228ac65e3feefd6838bb5b9a74..e25af9af8f87e6762716749c367658bf itemstack = PiglinAi.removeOneItemFromItemEntity(drop); } else { diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index d3fef00a351a6c6ae6af1f1dcf793c5954fd3485..98e558338b5d9fb03869d2cc21b3e90eb45b95f6 100644 +index b4ba60c9cb69bb139d603a5c0506c8fd425b22e3..1526a542d8ae0711b5ae4a5ad1f23992156fcb30 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java -@@ -267,6 +267,11 @@ public abstract class Raider extends PatrollingMonster { +@@ -225,6 +225,11 @@ public abstract class Raider extends PatrollingMonster { boolean flag = this.hasActiveRaid() && this.getCurrentRaid().getLeader(this.getWave()) != null; if (this.hasActiveRaid() && !flag && ItemStack.matches(itemstack, Raid.getLeaderBannerInstance(this.registryAccess().lookupOrThrow(Registries.BANNER_PATTERN)))) { diff --git a/patches/unapplied/server/0767-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0759-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 88% rename from patches/unapplied/server/0767-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0759-Correctly-handle-interactions-with-items-on-cooldown.patch index 94d185c70f..96df3be322 100644 --- a/patches/unapplied/server/0767-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0759-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 7c1d3b042291a42f13ff32e9a9c6e07da47277ae..af4ee7e936dad42c458488b128d733a34b08afb5 100644 +index 03d89f326d320c5d778c3d1e2db7d6b88753faec..717d015dd4637dd9d568b751be1dc1046b0a0560 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -509,6 +509,7 @@ public class ServerPlayerGameMode { +@@ -514,6 +514,7 @@ public class ServerPlayerGameMode { BlockPos blockposition = hitResult.getBlockPos(); BlockState iblockdata = world.getBlockState(blockposition); boolean cancelledBlock = false; @@ -16,7 +16,7 @@ index 7c1d3b042291a42f13ff32e9a9c6e07da47277ae..af4ee7e936dad42c458488b128d733a3 if (!iblockdata.getBlock().isEnabled(world.enabledFeatures())) { return InteractionResult.FAIL; -@@ -518,10 +519,10 @@ public class ServerPlayerGameMode { +@@ -523,10 +524,10 @@ public class ServerPlayerGameMode { } if (player.getCooldowns().isOnCooldown(stack.getItem())) { @@ -30,10 +30,10 @@ index 7c1d3b042291a42f13ff32e9a9c6e07da47277ae..af4ee7e936dad42c458488b128d733a3 this.interactResult = event.useItemInHand() == Event.Result.DENY; this.interactPosition = blockposition.immutable(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index bb7ae2c13b8a037b631366da337d1d43985e1845..3d26da4e2afbf29fff99c1ee352773022698e6c9 100644 +index 972c54fbdf7d3ab74f8f8ea62144805c9301399f..b1c99a83726749229c4d386984c76c3ffdfc5ae2 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -545,6 +545,12 @@ public class CraftEventFactory { +@@ -546,6 +546,12 @@ public class CraftEventFactory { } public static PlayerInteractEvent callPlayerInteractEvent(net.minecraft.world.entity.player.Player who, Action action, BlockPos position, Direction direction, ItemStack itemstack, boolean cancelledBlock, InteractionHand hand, Vec3 targetPos) { @@ -46,7 +46,7 @@ index bb7ae2c13b8a037b631366da337d1d43985e1845..3d26da4e2afbf29fff99c1ee35277302 Player player = (who == null) ? null : (Player) who.getBukkitEntity(); CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack); -@@ -579,6 +585,11 @@ public class CraftEventFactory { +@@ -580,6 +586,11 @@ public class CraftEventFactory { if (cancelledBlock) { event.setUseInteractedBlock(Event.Result.DENY); } diff --git a/patches/unapplied/server/0768-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0760-Add-PlayerInventorySlotChangeEvent.patch similarity index 95% rename from patches/unapplied/server/0768-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0760-Add-PlayerInventorySlotChangeEvent.patch index a186dc3a9b..125ea58f8c 100644 --- a/patches/unapplied/server/0768-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0760-Add-PlayerInventorySlotChangeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5647a2c7788b09eb8b14286b0ded0a64c244e25b..cd07b3e1bc12eb8474a74fb08ee6521b5674b105 100644 +index 015db96646c603fb4d9b3b9ceb8853f680332944..319b1a60f2e0b26713c56f989a4759840e11961e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -347,6 +347,25 @@ public class ServerPlayer extends Player { +@@ -352,6 +352,25 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } } diff --git a/patches/unapplied/server/0769-Elder-Guardian-appearance-API.patch b/patches/server/0761-Elder-Guardian-appearance-API.patch similarity index 84% rename from patches/unapplied/server/0769-Elder-Guardian-appearance-API.patch rename to patches/server/0761-Elder-Guardian-appearance-API.patch index a9ffa33faa..1d381aab38 100644 --- a/patches/unapplied/server/0769-Elder-Guardian-appearance-API.patch +++ b/patches/server/0761-Elder-Guardian-appearance-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7e6ae084118e36eb1be9b5598eeb7e8885179eae..da2a2a2f2c0145e3342ab42f7fd1382c8def432c 100644 +index fadfa40fff32b0299d642c89b2dbc3cf4082adb9..efe70188f6679ee3ec77327834191b20489a96c5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3280,6 +3280,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3293,6 +3293,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/unapplied/server/0770-Allow-changing-bed-s-occupied-property.patch b/patches/server/0762-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/unapplied/server/0770-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0762-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/unapplied/server/0771-Add-entity-knockback-API.patch b/patches/server/0763-Add-entity-knockback-API.patch similarity index 86% rename from patches/unapplied/server/0771-Add-entity-knockback-API.patch rename to patches/server/0763-Add-entity-knockback-API.patch index 7830165ce6..15e730b9ec 100644 --- a/patches/unapplied/server/0771-Add-entity-knockback-API.patch +++ b/patches/server/0763-Add-entity-knockback-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index c761156e2b192ba26d608adc1a9366ff08f90ce3..2537d4d4ec1243f3b80ec13a6b863ec6de619919 100644 +index a6177df2fcc203641b5cc6628793ba9dfdfb428f..e51a217f839b3b71d6a412b9fdb1ea7fd6ec1f32 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1095,4 +1095,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1097,4 +1097,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { throw new UnsupportedOperationException("Cannot set the hurt direction on a non player"); } // Paper end - hurt direction API diff --git a/patches/unapplied/server/0772-Detect-headless-JREs.patch b/patches/server/0764-Detect-headless-JREs.patch similarity index 100% rename from patches/unapplied/server/0772-Detect-headless-JREs.patch rename to patches/server/0764-Detect-headless-JREs.patch diff --git a/patches/unapplied/server/0773-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0765-fix-entity-vehicle-collision-event-not-called.patch similarity index 93% rename from patches/unapplied/server/0773-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0765-fix-entity-vehicle-collision-event-not-called.patch index fdb817e0f7..e39b0eaf22 100644 --- a/patches/unapplied/server/0773-fix-entity-vehicle-collision-event-not-called.patch +++ b/patches/server/0765-fix-entity-vehicle-collision-event-not-called.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix entity vehicle collision event not called diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 2f73ca283f2d6e6bc5265c95ef767b3f606a3d69..4d7454e5a64fc18e63793a221daa94617f17c666 100644 +index 2bd3ba073843b1680eeb81f7dede5973bb4f446d..f403fc311a974558233028663dbe14c27b27d3f9 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -165,7 +165,15 @@ public abstract class AbstractMinecart extends VehicleEntity { diff --git a/patches/unapplied/server/0774-Add-EntityToggleSitEvent.patch b/patches/server/0766-Add-EntityToggleSitEvent.patch similarity index 82% rename from patches/unapplied/server/0774-Add-EntityToggleSitEvent.patch rename to patches/server/0766-Add-EntityToggleSitEvent.patch index 6430c3e7f9..66349ee5a3 100644 --- a/patches/unapplied/server/0774-Add-EntityToggleSitEvent.patch +++ b/patches/server/0766-Add-EntityToggleSitEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityToggleSitEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index ed2514de46d0939259ca4e45a6dc96d7c1dac20d..45284bb0f081377bc5913876c6877a424285c0bb 100644 +index 07ec4837d17a9cb7db2fa310a42fc87e052b3f9b..39adc89b35213d5d5fb71bb4b7e0c641f77e4a06 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -@@ -68,7 +68,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -86,7 +86,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { } this.orderedToSit = nbt.getBoolean("Sitting"); @@ -17,21 +17,21 @@ index ed2514de46d0939259ca4e45a6dc96d7c1dac20d..45284bb0f081377bc5913876c6877a42 } @Override -@@ -126,6 +126,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -162,6 +162,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { } public void setInSittingPose(boolean inSittingPose) { -+ // Paper start - Add EntityToggleSitEvent ++ // Paper start - Add EntityToggleSitEvent + this.setInSittingPose(inSittingPose, true); + } + public void setInSittingPose(boolean inSittingPose, boolean callEvent) { + if (callEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), inSittingPose).callEvent()) return; -+ // Paper end - Add EntityToggleSitEvent - byte b = this.entityData.get(DATA_FLAGS_ID); ++ // Paper end - Add EntityToggleSitEvent + byte b0 = (Byte) this.entityData.get(TamableAnimal.DATA_FLAGS_ID); + if (inSittingPose) { - this.entityData.set(DATA_FLAGS_ID, (byte)(b | 1)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 1aa5485f2608000e4ac07350d1c537bc9bd92de4..e705449496b1a06270ecbc13f4dce5357479845b 100644 +index 3265b3b5aede517b6fd8bb836947795bf8881350..9a0adf65d4d54852301a91b6fe444e4c5a139f5d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -432,7 +432,7 @@ public class Fox extends Animal implements VariantHolder { @@ -57,10 +57,10 @@ index 1aa5485f2608000e4ac07350d1c537bc9bd92de4..e705449496b1a06270ecbc13f4dce535 } 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 83d8a09980c4ab3c7c97b07c3dcdb3d7dab9e1aa..0440fd2d1bb3f87641ad88de6d5ae64617536a6d 100644 +index 7b3d5322611990406028e59b1409907291e27b21..293d6891948e99ac9bd741008f7dcbc5fc1a2e3d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java -@@ -144,6 +144,7 @@ public class Panda extends Animal { +@@ -145,6 +145,7 @@ public class Panda extends Animal { } public void sit(boolean sitting) { @@ -69,10 +69,10 @@ index 83d8a09980c4ab3c7c97b07c3dcdb3d7dab9e1aa..0440fd2d1bb3f87641ad88de6d5ae646 } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index bc346a6ab6aaa7de363e058d1065fd147b571a57..8ebe18a1abbac81094e6aab19ba76edc0255e3b7 100644 +index bdc845b36b316069a626dad6cf31f5bcc5cd7d35..71c1bc87ab5942fa07f187fa44089c08b5804e91 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -@@ -566,7 +566,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -567,7 +567,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } public void sitDown() { @@ -81,7 +81,7 @@ index bc346a6ab6aaa7de363e058d1065fd147b571a57..8ebe18a1abbac81094e6aab19ba76edc this.makeSound(SoundEvents.CAMEL_SIT); this.setPose(Pose.SITTING); this.gameEvent(GameEvent.ENTITY_ACTION); -@@ -575,7 +575,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -576,7 +576,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } public void standUp() { @@ -90,7 +90,7 @@ index bc346a6ab6aaa7de363e058d1065fd147b571a57..8ebe18a1abbac81094e6aab19ba76edc this.makeSound(SoundEvents.CAMEL_STAND); this.setPose(Pose.STANDING); this.gameEvent(GameEvent.ENTITY_ACTION); -@@ -584,6 +584,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl +@@ -585,6 +585,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl } public void standUpInstantly() { diff --git a/patches/unapplied/server/0775-Add-fire-tick-delay-option.patch b/patches/server/0767-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/unapplied/server/0775-Add-fire-tick-delay-option.patch rename to patches/server/0767-Add-fire-tick-delay-option.patch diff --git a/patches/unapplied/server/0776-Add-Moving-Piston-API.patch b/patches/server/0768-Add-Moving-Piston-API.patch similarity index 100% rename from patches/unapplied/server/0776-Add-Moving-Piston-API.patch rename to patches/server/0768-Add-Moving-Piston-API.patch diff --git a/patches/unapplied/server/0777-Ignore-impossible-spawn-tick.patch b/patches/server/0769-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/unapplied/server/0777-Ignore-impossible-spawn-tick.patch rename to patches/server/0769-Ignore-impossible-spawn-tick.patch diff --git a/patches/unapplied/server/0778-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0770-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/unapplied/server/0778-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0770-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/unapplied/server/0779-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0771-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 87% rename from patches/unapplied/server/0779-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0771-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 2d47d4a316..aeff32467f 100644 --- a/patches/unapplied/server/0779-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0771-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 46ac56626b444e9047a20ef4d383e4045768fa3f..6fefd0e1dd2601914b2790469bfcbd04cd9b1a28 100644 +index 6be5d68567ba7b598644a3feeaa34ae5171c3b97..1097fe9791a012568070b7b522c35303c85f4375 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3132,6 +3132,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3206,6 +3206,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess pluginManager.callEvent(entityCombustEvent); if (!entityCombustEvent.isCancelled()) { this.igniteForSeconds(entityCombustEvent.getDuration(), false); @@ -21,7 +21,7 @@ index 46ac56626b444e9047a20ef4d383e4045768fa3f..6fefd0e1dd2601914b2790469bfcbd04 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 39a92a25c55fb16f1371b0dfe2fb94258e4b7f0d..784767e5a5c49b023df24496418fb16857d9d700 100644 +index c36e64c3df09f14ffb06b81ef20c5e200e386e50..bdf432850f8228ed42b09afea79ecc5c1055c930 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -134,6 +134,10 @@ public abstract class BaseFireBlock extends Block { diff --git a/patches/unapplied/server/0780-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0772-Add-PrePlayerAttackEntityEvent.patch similarity index 74% rename from patches/unapplied/server/0780-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0772-Add-PrePlayerAttackEntityEvent.patch index bebfa23732..da2cbed41e 100644 --- a/patches/unapplied/server/0780-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0772-Add-PrePlayerAttackEntityEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent 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 9f3d1a5407635d740adb6722930c94781a021015..61553ebc54b5666c2f53d2aa2bbb2a74f0a266dd 100644 +index 538c530ce9a2ce94dc013d8237b68b66bfcaa610..4ff41cc3e2ff69c6f0c3cd7be3e22d6948010599 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1246,8 +1246,17 @@ public abstract class Player extends LivingEntity { +@@ -1256,8 +1256,17 @@ public abstract class Player extends LivingEntity { } public void attack(Entity target) { @@ -25,6 +25,6 @@ index 9f3d1a5407635d740adb6722930c94781a021015..61553ebc54b5666c2f53d2aa2bbb2a74 + if (playerAttackEntityEvent.callEvent() && willAttack) { // Logic moved to willAttack local variable. + { + // Paper end - PlayerAttackEntityEvent - float f = (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE); - float f1 = EnchantmentHelper.getDamageBonus(this.getMainHandItem(), target.getType()); - float f2 = this.getAttackStrengthScale(0.5F); + float f = this.isAutoSpinAttack() ? this.autoSpinAttackDmg : (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE); + ItemStack itemstack = this.getWeaponItem(); + DamageSource damagesource = this.damageSources().playerAttack(this); diff --git a/patches/unapplied/server/0781-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0773-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/unapplied/server/0781-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0773-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/unapplied/server/0783-Add-Player-Warden-Warning-API.patch b/patches/server/0774-Add-Player-Warden-Warning-API.patch similarity index 93% rename from patches/unapplied/server/0783-Add-Player-Warden-Warning-API.patch rename to patches/server/0774-Add-Player-Warden-Warning-API.patch index af1ccd8096..8155722e14 100644 --- a/patches/unapplied/server/0783-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0774-Add-Player-Warden-Warning-API.patch @@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index da2a2a2f2c0145e3342ab42f7fd1382c8def432c..503367692e50e32375923f6a6e1a892920785fa4 100644 +index efe70188f6679ee3ec77327834191b20489a96c5..684cbe281a57335086ce8db2d7fdd36a60286dc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3285,6 +3285,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3298,6 +3298,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void showElderGuardian(boolean silent) { if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F)); } diff --git a/patches/unapplied/server/0784-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0775-More-vanilla-friendly-methods-to-update-trades.patch similarity index 94% rename from patches/unapplied/server/0784-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0775-More-vanilla-friendly-methods-to-update-trades.patch index 5280c03219..79a6b155bd 100644 --- a/patches/unapplied/server/0784-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/server/0775-More-vanilla-friendly-methods-to-update-trades.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More vanilla friendly methods to update trades diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 4d3a04e1d7910c4e71ac9a1cebb58e482958671a..1e8579c994098fb18d9725e3f1604a582be4162f 100644 +index 9d5a5a7fff7f75871e167f83edb0e9d5348748d7..393588661c41b490ee6bce2f687962f7ddeff7d4 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -919,6 +919,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -921,6 +921,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override protected void updateTrades() { @@ -21,7 +21,7 @@ index 4d3a04e1d7910c4e71ac9a1cebb58e482958671a..1e8579c994098fb18d9725e3f1604a58 VillagerData villagerdata = this.getVillagerData(); Int2ObjectMap int2objectmap; -@@ -936,9 +942,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -938,9 +944,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler if (avillagertrades_imerchantrecipeoption != null) { MerchantOffers merchantrecipelist = this.getOffers(); diff --git a/patches/unapplied/server/0785-Add-paper-dumplisteners-command.patch b/patches/server/0776-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/unapplied/server/0785-Add-paper-dumplisteners-command.patch rename to patches/server/0776-Add-paper-dumplisteners-command.patch diff --git a/patches/unapplied/server/0786-check-global-player-list-where-appropriate.patch b/patches/server/0777-check-global-player-list-where-appropriate.patch similarity index 76% rename from patches/unapplied/server/0786-check-global-player-list-where-appropriate.patch rename to patches/server/0777-check-global-player-list-where-appropriate.patch index 1dc849b82f..327b50b5f3 100644 --- a/patches/unapplied/server/0786-check-global-player-list-where-appropriate.patch +++ b/patches/server/0777-check-global-player-list-where-appropriate.patch @@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9f7088691c3ab848c5095b6109d14eae947ace99..1e122d5b49aa7f6a626e781e53de53be18afc346 100644 +index 15607da2883653cd757a3220ddf79833afd39330..b9d3a98824fc146128f35244f5f15bba97948674 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2332,4 +2332,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2300,4 +2300,12 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::move); } } @@ -24,10 +24,10 @@ index 9f7088691c3ab848c5095b6109d14eae947ace99..1e122d5b49aa7f6a626e781e53de53be + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 160347d036d6c8eaf48082c1155234e1a8df54c3..947bccb93f2a5baa6236e1da1a7ec0b27c072a14 100644 +index 0f330b53fb62907a79b436ce90a1466e33375b3a..795a3f09c7ee0a1119dd5762ce097c72a41cad94 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3672,7 +3672,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3694,7 +3694,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } public void onItemPickup(ItemEntity item) { @@ -37,18 +37,18 @@ index 160347d036d6c8eaf48082c1155234e1a8df54c3..947bccb93f2a5baa6236e1da1a7ec0b2 if (entity instanceof ServerPlayer) { CriteriaTriggers.THROWN_ITEM_PICKED_UP_BY_ENTITY.trigger((ServerPlayer) entity, item.getItem(), this); diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index deedc707971be0bd1b7757f4e9b6d2729cc669d0..f38acc96f71298e40ce9433e7759fd223ca55e48 100644 +index f8c733961015ace508bfe14fd61d5188ca9d551b..e0dabbf6d7a87b8722769c78ef0d2ba4353ed2cb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -273,7 +273,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { - entityvillager.finalizeSpawn(world, world.getCurrentDifficultyAt(entityvillager.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null); - entityvillager.refreshBrain(world); - if (this.conversionStarter != null) { -- Player entityhuman = world.getPlayerByUUID(this.conversionStarter); +@@ -269,7 +269,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { + entityvillager.finalizeSpawn(world, world.getCurrentDifficultyAt(entityvillager.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null); + entityvillager.refreshBrain(world); + if (this.conversionStarter != null) { +- Player entityhuman = world.getPlayerByUUID(this.conversionStarter); + Player entityhuman = world.getGlobalPlayerByUUID(this.conversionStarter); // Paper - check global player list where appropriate - if (entityhuman instanceof ServerPlayer) { - CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer) entityhuman, this, entityvillager); + if (entityhuman instanceof ServerPlayer) { + CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer) entityhuman, this, entityvillager); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java index d465fb01af4c8610f83ecb9c68b83127cf7e95ae..bd20bea7f76a7307f1698fb2dfef37125032d166 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -66,10 +66,10 @@ index d465fb01af4c8610f83ecb9c68b83127cf7e95ae..bd20bea7f76a7307f1698fb2dfef3712 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -index baa876db3a58a3c756a72ef1ad081964b358f58e..974d195d147dacb79f29dbfe2c6f4a0e0ebf28be 100644 +index dd86f5ec5b2051aeea4e19ff97146362b1e8d019..0c6561e53db1b82f70dec00729d4d8a70c8fd4a1 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -@@ -99,6 +99,13 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi +@@ -105,6 +105,13 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi @Nullable public static ServerPlayer tryGetPlayer(@Nullable Entity entity) { diff --git a/patches/unapplied/server/0787-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0778-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 86% rename from patches/unapplied/server/0787-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0778-Fix-async-entity-add-due-to-fungus-trees.patch index 5a9d9c2c7b..2a7830d952 100644 --- a/patches/unapplied/server/0787-Fix-async-entity-add-due-to-fungus-trees.patch +++ b/patches/server/0778-Fix-async-entity-add-due-to-fungus-trees.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix async entity add due to fungus trees diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 68a6572da2acf2ea2e6996e653a0ffe405846575..a59eece9c7a8c33cb8ce963906e993c3462684fb 100644 +index 13229388ddce668061a34c787ab9586d41854d8a..682c8cfbd917c086072f1756861a340800ea40da 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -236,6 +236,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -237,6 +237,7 @@ public class WorldGenRegion implements WorldGenLevel { if (iblockdata.isAir()) { return false; } else { @@ -17,10 +17,10 @@ index 68a6572da2acf2ea2e6996e653a0ffe405846575..a59eece9c7a8c33cb8ce963906e993c3 BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index fce1e4bc4898f10c7e8ae788630a55e42e99dd20..5cdc44c73b536f2ed2dcd49dbeccf0f69f614dba 100644 +index 3c1937b43b6834ae0ffdd8d22ac32a776bc7fb64..a14d3e6c43b94c543790571b13808713444a239f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -260,10 +260,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -261,10 +261,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor { ((ChorusFlowerBlock) Blocks.CHORUS_FLOWER).generatePlant(access, pos, random, 8); return true; case CRIMSON_FUNGUS: diff --git a/patches/unapplied/server/0788-ItemStack-damage-API.patch b/patches/server/0779-ItemStack-damage-API.patch similarity index 58% rename from patches/unapplied/server/0788-ItemStack-damage-API.patch rename to patches/server/0779-ItemStack-damage-API.patch index 6b5800404d..8abe444e1f 100644 --- a/patches/unapplied/server/0788-ItemStack-damage-API.patch +++ b/patches/server/0779-ItemStack-damage-API.patch @@ -11,45 +11,57 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 0ac1d8cf71dc685bcf2d1f9ab1440e933757359c..a158642471ab037ea3b99cac09ba5f3bf282e2a7 100644 +index d825c2e3808e44db9935dab4e7b528146c6d83c2..96a7e80e3efab1bf626fb7aff61e095ca09789d4 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -713,7 +713,14 @@ public final class ItemStack implements DataComponentHolder { - return; - } - } -+ // Paper start - ItemStack damage API - split hurtAndBreak to skip pre-checks like creative mode -+ this.hurtAndBreakWithoutChecks(amount, entity, slot); -+ } +@@ -647,8 +647,13 @@ public final class ItemStack implements DataComponentHolder { + } + + public void hurtAndBreak(int amount, ServerLevel world, @Nullable LivingEntity player, Consumer breakCallback) { // Paper - Add EntityDamageItemEvent ++ // Paper start - add param to skip infinite mats check ++ this.hurtAndBreak(amount, world, player, breakCallback, false); + } ++ public void hurtAndBreak(int amount, ServerLevel world, @Nullable LivingEntity player, Consumer breakCallback, boolean force) { ++ // Paper end - add param to skip infinite mats check + if (this.isDamageableItem()) { +- if (player == null || !player.hasInfiniteMaterials()) { ++ if (player == null || !player.hasInfiniteMaterials() || force) { // Paper + if (amount > 0) { + int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent + amount = EnchantmentHelper.processDurabilityChange(world, this, amount); +@@ -699,6 +704,11 @@ public final class ItemStack implements DataComponentHolder { + } -+ public void hurtAndBreakWithoutChecks(int amount, LivingEntity entity, @org.checkerframework.checker.nullness.qual.Nullable EquipmentSlot slot) { -+ { -+ // Paper end - ItemStack damage API - split hurtAndBreak to skip pre-checks like creative mode - RandomSource randomsource = entity.getRandom(); - ServerPlayer entityplayer; + public void hurtAndBreak(int amount, LivingEntity entity, EquipmentSlot slot) { ++ // Paper start - add param to skip infinite mats check ++ this.hurtAndBreak(amount, entity, slot, false); ++ } ++ public void hurtAndBreak(int amount, LivingEntity entity, EquipmentSlot slot, boolean force) { ++ // Paper end - add param to skip infinite mats check + Level world = entity.level(); -@@ -726,7 +733,7 @@ public final class ItemStack implements DataComponentHolder { - } + if (world instanceof ServerLevel worldserver) { +@@ -717,7 +727,7 @@ public final class ItemStack implements DataComponentHolder { + } + // CraftBukkit end + entity.onEquippedItemBroken(item, slot); +- }); ++ }, force); // Paper + } - this.hurtAndBreak(amount, randomsource, entity, () -> { // Paper - Add EntityDamageItemEvent -- entity.broadcastBreakEvent(slot); -+ if (slot != null) entity.broadcastBreakEvent(slot); // Paper - ItemStack damage API - slot is nullable - Item item = this.getItem(); - // CraftBukkit start - Check for item breaking - if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 2537d4d4ec1243f3b80ec13a6b863ec6de619919..6cf60ff71e398dbf6110f94a00e9bb973916a7f8 100644 +index e51a217f839b3b71d6a412b9fdb1ea7fd6ec1f32..26c874d36757bc23aec83d8e6309a28f6f462fd3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1103,4 +1103,48 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1105,4 +1105,48 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.getHandle().knockback(strength, directionX, directionZ); }; // Paper end - knockback API + + // Paper start - ItemStack damage API + public void broadcastSlotBreak(final org.bukkit.inventory.EquipmentSlot slot) { -+ this.getHandle().broadcastBreakEvent(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); ++ this.getHandle().level().broadcastEntityEvent(this.getHandle(), net.minecraft.world.entity.LivingEntity.entityEventForEquipmentBreak(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot))); + } + + @Override @@ -87,7 +99,7 @@ index 2537d4d4ec1243f3b80ec13a6b863ec6de619919..6cf60ff71e398dbf6110f94a00e9bb97 + } + + private void damageItemStack0(final net.minecraft.world.item.ItemStack nmsStack, final int amount, final net.minecraft.world.entity.EquipmentSlot slot) { -+ nmsStack.hurtAndBreakWithoutChecks(amount, this.getHandle(), slot); ++ nmsStack.hurtAndBreak(amount, this.getHandle(), slot, true); + } + // Paper end - ItemStack damage API } diff --git a/patches/unapplied/server/0708-Expand-PlayerItemDamageEvent.patch b/patches/unapplied/server/0708-Expand-PlayerItemDamageEvent.patch deleted file mode 100644 index 0162e1da45..0000000000 --- a/patches/unapplied/server/0708-Expand-PlayerItemDamageEvent.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: HexedHero <6012891+HexedHero@users.noreply.github.com> -Date: Sun, 10 Apr 2022 06:26:32 +0100 -Subject: [PATCH] Expand PlayerItemDamageEvent - - -diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index aa0a5b392942e03123b1dbd68ec8e9e1321457e9..0ac1d8cf71dc685bcf2d1f9ab1440e933757359c 100644 ---- a/src/main/java/net/minecraft/world/item/ItemStack.java -+++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -661,10 +661,11 @@ public final class ItemStack implements DataComponentHolder { - } - } - -+ int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent - amount -= k; - // CraftBukkit start - if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent -- PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper - Add EntityDamageItemEvent -+ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper - Add EntityDamageItemEvent & Expand PlayerItemDamageEvent - event.getPlayer().getServer().getPluginManager().callEvent(event); - - if (amount != event.getDamage() || event.isCancelled()) { diff --git a/patches/unapplied/server/0739-Add-EntityPortalReadyEvent.patch b/patches/unapplied/server/0739-Add-EntityPortalReadyEvent.patch deleted file mode 100644 index 7efb57f496..0000000000 --- a/patches/unapplied/server/0739-Add-EntityPortalReadyEvent.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Wed, 12 May 2021 04:30:42 -0700 -Subject: [PATCH] Add EntityPortalReadyEvent - - -diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e7c1e235ef03bb03e2788616255f7b14fa7fc0e3..46ac56626b444e9047a20ef4d383e4045768fa3f 100644 ---- a/src/main/java/net/minecraft/world/entity/Entity.java -+++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2867,6 +2867,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit - this.level().getProfiler().push("portal"); - this.portalTime = i; -+ // Paper start - Add EntityPortalReadyEvent -+ io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); -+ if (!event.callEvent()) { -+ this.portalTime = 0; -+ } else { -+ worldserver1 = event.getTargetWorld() == null ? null : ((CraftWorld) event.getTargetWorld()).getHandle(); -+ // Paper end - Add EntityPortalReadyEvent - this.setPortalCooldown(); - // CraftBukkit start - if (this instanceof ServerPlayer) { -@@ -2874,6 +2881,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - } else { - this.changeDimension(worldserver1); - } -+ } // Paper - Add EntityPortalReadyEvent - // CraftBukkit end - this.level().getProfiler().pop(); - } diff --git a/patches/unapplied/server/0782-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/unapplied/server/0782-fix-MC-252817-green-map-markers-do-not-disappear.patch deleted file mode 100644 index a5e8df272b..0000000000 --- a/patches/unapplied/server/0782-fix-MC-252817-green-map-markers-do-not-disappear.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: braindead -Date: Sat, 5 Nov 2022 17:47:26 -0400 -Subject: [PATCH] fix MC-252817 (green map markers do not disappear). - -this bug is caused by the fact that the itemframe's item is set to empty before the green marker is requested to be removed. this is fixed by getting the mapid from this method's parameter, rather than the air block now stored by the item frame. - -diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index cb3de05dba7daa925b6fa7e0c7bbb8e3c53b51f4..6bf89686ce5cf700ac06ec1e38f53af745098fa3 100644 ---- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -@@ -277,7 +277,7 @@ public class ItemFrame extends HangingEntity { - } - - private void removeFramedMap(ItemStack stack) { -- MapId mapid = this.getFramedMapId(); -+ MapId mapid = this.getFramedMapIdForItem(stack); // Paper - fix MC-252817 (green map markers do not disappear) - - if (mapid != null) { - MapItemSavedData worldmap = MapItem.getSavedData(mapid, this.level()); -@@ -305,7 +305,14 @@ public class ItemFrame extends HangingEntity { - - @Nullable - public MapId getFramedMapId() { -- return (MapId) this.getItem().get(DataComponents.MAP_ID); -+ // Paper start -+ return this.getFramedMapIdForItem(this.getItem()); -+ } -+ -+ @Nullable -+ public MapId getFramedMapIdForItem(ItemStack item) { -+ return (MapId) item.get(DataComponents.MAP_ID); -+ // Paper end - } - - public boolean hasFramedMap() {