diff --git a/gradle.properties b/gradle.properties index 6aac086..4d1fc22 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=dev.folia version=1.21.1-R0.1-SNAPSHOT mcVersion=1.21.1 -paperRef=fcedb49fea3df3bbb1dfe1281060bafa49d9cbe5 +paperRef=25621248d3f30f35c3458b4b13a2474ffd0bee0e org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/server/0003-Threaded-Regions.patch b/patches/server/0003-Threaded-Regions.patch index 6e639ce..524df70 100644 --- a/patches/server/0003-Threaded-Regions.patch +++ b/patches/server/0003-Threaded-Regions.patch @@ -1143,10 +1143,10 @@ index 690086adcb1f87adc0b3ab664fde735ad3e1093a..155ea12a82c94e513fbb6090b209b14a + // Folia end - threaded regions } diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index 95e96fe8aa93efbbb2e0a7dd98377fdc4fe0e6dd..eddbaa14fff6328397fbe9dd353179f6659f5b09 100644 +index aa3624fb8aaaf2720aaef7800f537dd4b906797f..aa0f756aac5b9119aaf0070095953402f82bbbc5 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -482,6 +482,14 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -494,6 +494,14 @@ public class WorldConfiguration extends ConfigurationPart { public Chunks chunks; public class Chunks extends ConfigurationPart { @@ -12707,7 +12707,7 @@ index 8aff5129f85ab5729b3da2e465871be62d15bdf2..8044271ff01dfc6808f5a3b60be74f6d Collections.shuffle( this.connections ); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..8a6e2ec591815eb41c4fd04c51acb3681972e928 100644 +index 4320af392b7bd29d6a5d6da44361ffd0da16036a..804166bf2da81927ab449811be9fcf67e74eed00 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -300,7 +300,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13030,7 +13030,7 @@ index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..8a6e2ec591815eb41c4fd04c51acb368 final String conversationInput = s; this.server.processQueue.add(new Runnable() { @Override -@@ -2740,8 +2793,25 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2744,8 +2797,25 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot End public void switchToConfig() { @@ -13057,7 +13057,7 @@ index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..8a6e2ec591815eb41c4fd04c51acb368 this.send(ClientboundStartConfigurationPacket.INSTANCE); this.connection.setupOutboundProtocol(ConfigurationProtocols.CLIENTBOUND); } -@@ -2767,7 +2837,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2771,7 +2841,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.resetLastActionTime(); this.player.setShiftKeyDown(packet.isUsingSecondaryAction()); @@ -13066,7 +13066,7 @@ index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..8a6e2ec591815eb41c4fd04c51acb368 if (!worldserver.getWorldBorder().isWithinBounds(entity.blockPosition())) { return; } -@@ -2911,6 +2981,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2915,6 +2985,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl switch (packetplayinclientcommand_enumclientcommand) { case PERFORM_RESPAWN: if (this.player.wonGame) { @@ -13079,7 +13079,7 @@ index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..8a6e2ec591815eb41c4fd04c51acb368 this.player.wonGame = false; this.player = this.server.getPlayerList().respawn(this.player, true, Entity.RemovalReason.CHANGED_DIMENSION, RespawnReason.END_PORTAL); // CraftBukkit CriteriaTriggers.CHANGED_DIMENSION.trigger(this.player, Level.END, Level.OVERWORLD); -@@ -2919,6 +2995,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2923,6 +2999,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } @@ -13097,7 +13097,7 @@ index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..8a6e2ec591815eb41c4fd04c51acb368 this.player = this.server.getPlayerList().respawn(this.player, false, Entity.RemovalReason.KILLED, RespawnReason.DEATH); // CraftBukkit if (this.server.isHardcore()) { this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent -@@ -3471,7 +3558,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3475,7 +3562,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.filterTextPacket(list).thenAcceptAsync((list1) -> { this.updateSignText(packet, list1); @@ -13835,7 +13835,7 @@ index e9df8f8541b8a1b85c7d2925ff3cba813007a1ef..d3f2775a68121ca80ef55ea4c280a0c9 return blockToFallLocation(blockState); } else { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 490ee48346395fcbaf2eb0151e9248f18974fea6..f736ad7e211c89e4c7edc689b089b1b3b486fbab 100644 +index e0827d8bb3fa17d4f590a5342ff41a514f623e68..d1a8e8a7f03f1769431b6711cf842898e8c59aaa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -178,7 +178,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -14768,7 +14768,7 @@ index 490ee48346395fcbaf2eb0151e9248f18974fea6..f736ad7e211c89e4c7edc689b089b1b3 + protected void removeAfterChangingDimensions() { this.setRemoved(Entity.RemovalReason.CHANGED_DIMENSION, null); // CraftBukkit - add Bukkit remove cause - if (this instanceof Leashable leashable) { + if (this instanceof Leashable leashable && leashable.isLeashed()) { // Paper - only call if it is leashed @@ -4699,7 +5463,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } @@ -14958,7 +14958,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..6e2ce383bb4d52702dfcb8823ce0c5dc while (!flag2 && blockposition.getY() > world.getMinBuildHeight()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index f36a814bfd90af6457171512c131601b19905737..a4ddf384bc1f58ceac5f49721aca652276ad62eb 100644 +index 763abeea3f14f15c27d600e0bdae44b387687bb4..1cb0029739a487d930e4f10371c82d3a03a46de4 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -148,6 +148,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -15006,7 +15006,7 @@ index f36a814bfd90af6457171512c131601b19905737..a4ddf384bc1f58ceac5f49721aca6522 if (fireEvent) { if (reason == EntityTargetEvent.TargetReason.UNKNOWN && this.getTarget() != null && entityliving == null) { reason = this.getTarget().isAlive() ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED; -@@ -1791,16 +1811,22 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1788,16 +1808,22 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab this.goalSelector.removeAllGoals(predicate); } @@ -15050,10 +15050,10 @@ index 45761c113116ae7417e6ae99069bff35dbccdf30..c55d795209222a34c349d6f59eea3618 return this.portal.getLocalTransition(); } diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 45224dc3867892b298b006c17f7f85741fcc96d6..a72cc0eff0168e826c923607f693e8eebbb1f42f 100644 +index 9aee0569447d351729c26eedbe24d5defe620162..ea5096b88a6ac06f59792f29bc8ae52a0ba40840 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -@@ -266,6 +266,11 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -270,6 +270,11 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { LivingEntity entityliving = this.getOwner(); if (entityliving != null) { @@ -15065,7 +15065,7 @@ index 45224dc3867892b298b006c17f7f85741fcc96d6..a72cc0eff0168e826c923607f693e8ee this.teleportToAroundBlockPos(entityliving.blockPosition()); } -@@ -303,7 +308,22 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { +@@ -307,7 +312,22 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { return false; } Location to = event.getTo(); @@ -18845,7 +18845,7 @@ index 1b1b475ca27e799e251d6f8a8c9fe1a4fd8bae83..3085658976345d095e7c38a0edab42cb while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java -index 0bc659a8427b89b5e3211220c55b52eec6a20494..bcd7b23656bf77e9eca1bc194f9af360742b65be 100644 +index 8aa5445e38622cd7cf4b3e42e9be8760827639fa..cbd75e4e53649a19d9e8cabb20359749ff315cdb 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java @@ -60,11 +60,7 @@ public class EndPlatformFeature extends Feature { @@ -18858,9 +18858,9 @@ index 0bc659a8427b89b5e3211220c55b52eec6a20494..bcd7b23656bf77e9eca1bc194f9af360 - worldaccess.getLevel().getCraftServer().getPluginManager().callEvent(portalEvent); - if (!portalEvent.isCancelled()) { + if (true) { // Folia - region threading - blockList.updateList(); - } - // CraftBukkit end + // Paper start - Properly destroy placed blocks on the end platform + if (flag) { + for (org.bukkit.craftbukkit.block.CraftBlockState state : blockList.getList()) { diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureStart.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureStart.java index c92a2c5bba1525eff39d9a3cad70fdacd426e8cb..04274f48627c40d3ac722e3ec595182d6d44b167 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureStart.java diff --git a/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch b/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch index 71f12d2..5ab8a3f 100644 --- a/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch +++ b/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch @@ -29,7 +29,7 @@ index 41bf71d116ffc5431586ce54abba7f8def6c1dcf..1cf9a7677449ab8f03fb23d835e3fadc } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f736ad7e211c89e4c7edc689b089b1b3b486fbab..7a102b4e90fbc09b8653e5b566299efe24a04cf6 100644 +index d1a8e8a7f03f1769431b6711cf842898e8c59aaa..0dce7e72a2c5f7360a43b662b43b47603e2aa213 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3044,6 +3044,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess