From b1f280fa042f1e7c79236aba734ffbf28e1ecde3 Mon Sep 17 00:00:00 2001 From: granny Date: Wed, 10 Dec 2025 21:07:30 -0800 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@ba4b700e 1.21.11 PaperMC/Paper@cc3dae7a Re-add DataConverter patch PaperMC/Paper@4446f17f Fix PlayerClientLoadedWorldEvent calls (#13374) --- gradle.properties | 6 ++--- .../features/0001-Ridables.patch | 8 +++---- ...ggle-for-water-sensitive-mob-damage.patch} | 0 ...17-API-for-any-mob-to-burn-daylight.patch} | 0 ...urally-aggressive-to-players-chance.patch} | 0 ...=> 0019-Mobs-always-drop-experience.patch} | 0 ...tting-to-reintroduce-end-void-rings.patch} | 4 ++-- .../server/MinecraftServer.java.patch | 12 +++++----- .../ServerGamePacketListenerImpl.java.patch | 24 +++++++++---------- 9 files changed, 27 insertions(+), 27 deletions(-) rename purpur-server/minecraft-patches/features/{0017-Toggle-for-water-sensitive-mob-damage.patch => 0016-Toggle-for-water-sensitive-mob-damage.patch} (100%) rename purpur-server/minecraft-patches/features/{0018-API-for-any-mob-to-burn-daylight.patch => 0017-API-for-any-mob-to-burn-daylight.patch} (100%) rename purpur-server/minecraft-patches/features/{0019-Cows-naturally-aggressive-to-players-chance.patch => 0018-Cows-naturally-aggressive-to-players-chance.patch} (100%) rename purpur-server/minecraft-patches/features/{0020-Mobs-always-drop-experience.patch => 0019-Mobs-always-drop-experience.patch} (100%) rename purpur-server/minecraft-patches/features/{0021-Setting-to-reintroduce-end-void-rings.patch => 0020-Setting-to-reintroduce-end-void-rings.patch} (94%) diff --git a/gradle.properties b/gradle.properties index 44ce3f08e..b0aec368e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,9 @@ group = org.purpurmc.purpur -version = 1.21.11-rc3-R0.1-SNAPSHOT +version = 1.21.11-R0.1-SNAPSHOT -mcVersion = 1.21.11-rc3 +mcVersion = 1.21.11 apiVersion=1.21.11 -paperCommit = f6e937b97856bf72e7932eccf930a405859288e8 +paperCommit = 4446f17f652d3ce56860f8c06d6746fa3c1853fc org.gradle.configuration-cache = true org.gradle.caching = true diff --git a/purpur-server/minecraft-patches/features/0001-Ridables.patch b/purpur-server/minecraft-patches/features/0001-Ridables.patch index c63cfdca1..be3daf702 100644 --- a/purpur-server/minecraft-patches/features/0001-Ridables.patch +++ b/purpur-server/minecraft-patches/features/0001-Ridables.patch @@ -18,10 +18,10 @@ index 05eb0c3273ffa1b5a1ebd8f8ae42c11830d755c7..49d3154afe2ca5789e63bdf972c79196 public boolean isClientAuthoritative() { return false; diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index fb65832d3d820aa48bb8fc0efecfd659bb8e2755..cf817b5bab8e936bd40477d40359c35f2bf1d5fc 100644 +index c714782f047c211443723738527f4bd019aaa322..cfd9596246713030f7c0f28a65abeed6dcc8d81b 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1832,6 +1832,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent serverLevel.updateLagCompensationTick(); // Paper - lag compensation net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers @@ -62,10 +62,10 @@ index 9ec896ad8e95d7822095c42054e76e7a5db91481..2eba1b0ac8b4a0bb34d04b81c4c279db private void updatePlayerAttributes() { diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a7e64b698d8db843cac9e1b0ae86c9e7aa8db492..bf534674d9796a985534538301523723190a6277 100644 +index cd7ecd971b5a0ffdf6cabeaa874f2a221431052e..e587414dd1250b14a0fecf8d1b25dd70b20816eb 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2902,6 +2902,8 @@ public class ServerGamePacketListenerImpl +@@ -2895,6 +2895,8 @@ public class ServerGamePacketListenerImpl ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); final boolean resendData = event.isCancelled() || !ServerGamePacketListenerImpl.this.player.getItemInHand(hand).is(itemType); diff --git a/purpur-server/minecraft-patches/features/0017-Toggle-for-water-sensitive-mob-damage.patch b/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch similarity index 100% rename from purpur-server/minecraft-patches/features/0017-Toggle-for-water-sensitive-mob-damage.patch rename to purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch diff --git a/purpur-server/minecraft-patches/features/0018-API-for-any-mob-to-burn-daylight.patch b/purpur-server/minecraft-patches/features/0017-API-for-any-mob-to-burn-daylight.patch similarity index 100% rename from purpur-server/minecraft-patches/features/0018-API-for-any-mob-to-burn-daylight.patch rename to purpur-server/minecraft-patches/features/0017-API-for-any-mob-to-burn-daylight.patch diff --git a/purpur-server/minecraft-patches/features/0019-Cows-naturally-aggressive-to-players-chance.patch b/purpur-server/minecraft-patches/features/0018-Cows-naturally-aggressive-to-players-chance.patch similarity index 100% rename from purpur-server/minecraft-patches/features/0019-Cows-naturally-aggressive-to-players-chance.patch rename to purpur-server/minecraft-patches/features/0018-Cows-naturally-aggressive-to-players-chance.patch diff --git a/purpur-server/minecraft-patches/features/0020-Mobs-always-drop-experience.patch b/purpur-server/minecraft-patches/features/0019-Mobs-always-drop-experience.patch similarity index 100% rename from purpur-server/minecraft-patches/features/0020-Mobs-always-drop-experience.patch rename to purpur-server/minecraft-patches/features/0019-Mobs-always-drop-experience.patch diff --git a/purpur-server/minecraft-patches/features/0021-Setting-to-reintroduce-end-void-rings.patch b/purpur-server/minecraft-patches/features/0020-Setting-to-reintroduce-end-void-rings.patch similarity index 94% rename from purpur-server/minecraft-patches/features/0021-Setting-to-reintroduce-end-void-rings.patch rename to purpur-server/minecraft-patches/features/0020-Setting-to-reintroduce-end-void-rings.patch index e53c61009..0c35dd916 100644 --- a/purpur-server/minecraft-patches/features/0021-Setting-to-reintroduce-end-void-rings.patch +++ b/purpur-server/minecraft-patches/features/0020-Setting-to-reintroduce-end-void-rings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Setting to reintroduce end void rings diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index cf817b5bab8e936bd40477d40359c35f2bf1d5fc..afb88446dc0aa2a3b0c4cbcdb44279c3c80ff076 100644 +index cfd9596246713030f7c0f28a65abeed6dcc8d81b..952444a26fd13ae0b385b2b7f717d965b4c76d19 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1314,6 +1314,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop catchup) { -@@ -1786,7 +_,7 @@ +@@ -1787,7 +_,7 @@ long worldTime = level.getGameTime(); final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight); for (Player entityhuman : level.players()) { @@ -88,7 +88,7 @@ continue; } ServerPlayer entityplayer = (ServerPlayer) entityhuman; -@@ -1953,7 +_,7 @@ +@@ -1954,7 +_,7 @@ @DontObfuscate public String getServerModName() { diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch index 6f0960f18..06fd70e60 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch @@ -51,7 +51,7 @@ this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause return; } -@@ -1308,6 +_,10 @@ +@@ -1301,6 +_,10 @@ final int maxBookPageSize = pageMax.intValue(); final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D); long byteAllowed = maxBookPageSize; @@ -62,7 +62,7 @@ for (final String page : pageList) { final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; byteTotal += byteLength; -@@ -1332,7 +_,8 @@ +@@ -1325,7 +_,8 @@ } if (byteTotal > byteAllowed) { @@ -72,7 +72,7 @@ this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect return; } -@@ -1351,31 +_,45 @@ +@@ -1344,31 +_,45 @@ Optional optional = packet.title(); optional.ifPresent(list::add); list.addAll(packet.pages()); @@ -122,7 +122,7 @@ itemStack.set( DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getPlainTextName(), 0, list, true) ); -@@ -1388,6 +_,16 @@ +@@ -1381,6 +_,16 @@ return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText); } @@ -139,7 +139,7 @@ @Override public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); -@@ -1427,7 +_,15 @@ +@@ -1420,7 +_,15 @@ @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); @@ -156,7 +156,7 @@ this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause } else { ServerLevel serverLevel = this.player.level(); -@@ -1610,7 +_,7 @@ +@@ -1603,7 +_,7 @@ movedWrongly = true; if (event.getLogWarning()) // Paper end @@ -165,7 +165,7 @@ } // Paper } -@@ -1675,6 +_,8 @@ +@@ -1668,6 +_,8 @@ this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -174,7 +174,7 @@ Location oldTo = to.clone(); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); this.cserver.getPluginManager().callEvent(event); -@@ -1730,6 +_,13 @@ +@@ -1723,6 +_,13 @@ this.player.tryResetCurrentImpulseContext(); } @@ -188,7 +188,7 @@ this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1747,6 +_,17 @@ +@@ -1740,6 +_,17 @@ } } @@ -206,7 +206,7 @@ private boolean shouldCheckPlayerMovement(boolean isElytraMovement) { if (this.isSingleplayerOwner()) { return false; -@@ -2161,6 +_,7 @@ +@@ -2154,6 +_,7 @@ boolean cancelled; if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) { @@ -214,7 +214,7 @@ org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand); cancelled = event.useItemInHand() == Event.Result.DENY; } else { -@@ -2807,6 +_,7 @@ +@@ -2800,6 +_,7 @@ AABB boundingBox = target.getBoundingBox(); if (packet.isWithinRange(this.player, boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range @@ -222,7 +222,7 @@ packet.dispatch( new ServerboundInteractPacket.Handler() { private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit -@@ -3552,7 +_,7 @@ +@@ -3545,7 +_,7 @@ @Override public void handleChangeGameMode(ServerboundChangeGameModePacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());