From 07979c301479f990a6f4b36f4fb20dc6c1cea45e Mon Sep 17 00:00:00 2001 From: granny Date: Wed, 14 Aug 2024 00:30:56 -0700 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@ab0d24a Configuration for horizontal-only item merging (#11219) PaperMC/Paper@098bd39 Remove arbitrary book page limit (#11228) PaperMC/Paper@f97aff7 [ci skip] Fix Effect javadocs (#11182) PaperMC/Paper@4a97ba3 Fix `setSendViewDistance`'s return (#11247) PaperMC/Paper@1798e94 Fix BasicCommand suggestion arg count (#11241) PaperMC/Paper@7c9240f Improve standard messenger logging --- gradle.properties | 2 +- patches/server/0007-Ridables.patch | 6 +++--- patches/server/0011-AFK-API.patch | 10 +++++----- .../0069-Allow-color-codes-in-books.patch | 12 ++++++------ patches/server/0070-Entity-lifespan.patch | 4 ++-- .../server/0115-PlayerBookTooLargeEvent.patch | 19 ++++++++----------- .../server/0127-Dont-run-with-scissors.patch | 6 +++--- ...t-right-click-to-use-exp-for-mending.patch | 4 ++-- ...er-output-for-invalid-movement-kicks.patch | 4 ++-- 9 files changed, 32 insertions(+), 35 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5e1611a49..b09fb3b6f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21.1-R0.1-SNAPSHOT mcVersion = 1.21.1 -paperCommit = dd941cc40a25a4c6217f09c121b891962726f3ee +paperCommit = 7c9240f4a63b13be1fdcedbfb0270f9b49b75518 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index 1f76dabc8..0742b41ee 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -46,7 +46,7 @@ index 2fe9d9b38c01d04416843fdd48d3e33899b7de63..559bec25060eb8981bf80213ceedb79d public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 37adf5d3c6248547d830248714f32dbec653d653..f21573f92d6703d74203b205aa2aebd0588a12e7 100644 +index 2bd74f003b132b9925002ac79ea066973c9047a4..50ff7afa040c54e538e191322146df48c6675df0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -805,6 +805,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -66,10 +66,10 @@ index 37adf5d3c6248547d830248714f32dbec653d653..f21573f92d6703d74203b205aa2aebd0 private void updatePlayerAttributes() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 624b80c796e9c95040d71d1595d11f98e2899cf3..152aff15307dabafdd0f3b3cf8f61b216c5d9f3f 100644 +index 60ff21c8df4168f14da04a12073bde47cd4693c4..a7f7c140b2c6ee936699e25a72b7e4fcb3705b97 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2717,6 +2717,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2712,6 +2712,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); diff --git a/patches/server/0011-AFK-API.patch b/patches/server/0011-AFK-API.patch index 9d3a3a573..e3964d532 100644 --- a/patches/server/0011-AFK-API.patch +++ b/patches/server/0011-AFK-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f21573f92d6703d74203b205aa2aebd0588a12e7..585b41a7e890aa6b5ea27f8fb84a8ca0310ddeb6 100644 +index 50ff7afa040c54e538e191322146df48c6675df0..f19907853edae46b0db4edcbec286add2da6c5f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2368,8 +2368,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -78,7 +78,7 @@ index f21573f92d6703d74203b205aa2aebd0588a12e7..585b41a7e890aa6b5ea27f8fb84a8ca0 return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 82f60de72bc0f9b01eb97dbc0e296e80579b0968..07d8b2536c2c95b91467edd2ece8674eeaa6ad2f 100644 +index a7f7c140b2c6ee936699e25a72b7e4fcb3705b97..a38be909672f833b70ae74817673e6080e4a467a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -332,6 +332,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -124,7 +124,7 @@ index 82f60de72bc0f9b01eb97dbc0e296e80579b0968..07d8b2536c2c95b91467edd2ece8674e Location oldTo = to.clone(); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); this.cserver.getPluginManager().callEvent(event); -@@ -1454,7 +1476,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1449,7 +1471,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl movedWrongly = true; if (event.getLogWarning()) // Paper end @@ -133,7 +133,7 @@ index 82f60de72bc0f9b01eb97dbc0e296e80579b0968..07d8b2536c2c95b91467edd2ece8674e } // Paper } -@@ -1512,6 +1534,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1507,6 +1529,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -223,7 +223,7 @@ index 141b748abe80402731cdaf14a3d36aa7cef4f4bd..d5d2a6467b48bcf8e5322dd5938f6e4f if (range < 0.0 || d < range * range) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c2e0baa40e556fd8bb2ae406b321da01f1d05079..1faf1c4b777333030d164e277ee3552900f10cd3 100644 +index 39bb873b5207e83aef36dbf362079eaff31fbb9e..263c4fd61219bb151d9b58fac5d5a75a3dae7029 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -576,10 +576,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0069-Allow-color-codes-in-books.patch b/patches/server/0069-Allow-color-codes-in-books.patch index ef002a5b6..9a9e99e7d 100644 --- a/patches/server/0069-Allow-color-codes-in-books.patch +++ b/patches/server/0069-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 07d8b2536c2c95b91467edd2ece8674eeaa6ad2f..68c4e3d9a3f928a52357e25820ac73adbfb3332c 100644 +index a38be909672f833b70ae74817673e6080e4a467a..4319a191f03caa56baeecdc537b61aacfa2291cd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1203,10 +1203,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1198,10 +1198,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl Objects.requireNonNull(list); stream.forEach(list::add); @@ -25,7 +25,7 @@ index 07d8b2536c2c95b91467edd2ece8674eeaa6ad2f..68c4e3d9a3f928a52357e25820ac73ad }; this.filterTextPacket((List) list).thenAcceptAsync(consumer, this.server); -@@ -1214,13 +1218,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1209,13 +1213,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } private void updateBookContents(List pages, int slotId) { @@ -45,7 +45,7 @@ index 07d8b2536c2c95b91467edd2ece8674eeaa6ad2f..68c4e3d9a3f928a52357e25820ac73ad itemstack.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookContent(list1)); this.player.getInventory().setItem(slotId, CraftEventFactory.handleEditBookEvent(this.player, slotId, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) -@@ -1228,6 +1237,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1223,6 +1232,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } private void signBook(FilteredText title, List pages, int slotId) { @@ -57,7 +57,7 @@ index 07d8b2536c2c95b91467edd2ece8674eeaa6ad2f..68c4e3d9a3f928a52357e25820ac73ad ItemStack itemstack = this.player.getInventory().getItem(slotId); if (itemstack.is(Items.WRITABLE_BOOK)) { -@@ -1235,10 +1249,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1230,10 +1244,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl itemstack1.remove(DataComponents.WRITABLE_BOOK_CONTENT); List> list1 = (List>) (List) pages.stream().map((filteredtext1) -> { // CraftBukkit - decompile error @@ -70,7 +70,7 @@ index 07d8b2536c2c95b91467edd2ece8674eeaa6ad2f..68c4e3d9a3f928a52357e25820ac73ad CraftEventFactory.handleEditBookEvent(this.player, slotId, itemstack, itemstack1); // CraftBukkit this.player.getInventory().setItem(slotId, itemstack); // CraftBukkit - event factory updates the hand book } -@@ -1248,6 +1262,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1243,6 +1257,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return this.player.isTextFilteringEnabled() ? Filterable.passThrough(message.filteredOrEmpty()) : Filterable.from(message); } diff --git a/patches/server/0070-Entity-lifespan.patch b/patches/server/0070-Entity-lifespan.patch index 30549fbd3..ee872d30f 100644 --- a/patches/server/0070-Entity-lifespan.patch +++ b/patches/server/0070-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 99d78eace196c5ad93d19c709862d8db7582f80b..600b8280c11032339c056b2b3ad371674072e2c2 100644 +index 4319a191f03caa56baeecdc537b61aacfa2291cd..1908af9183d290a1a6815866ba10172d05ff56d1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2752,6 +2752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2747,6 +2747,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); if (this.player.canInteractWithEntity(axisalignedbb, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(1.0D))) { // Paper - configurable lenience value for interact range diff --git a/patches/server/0115-PlayerBookTooLargeEvent.patch b/patches/server/0115-PlayerBookTooLargeEvent.patch index a8c1b44c3..b7a9897bc 100644 --- a/patches/server/0115-PlayerBookTooLargeEvent.patch +++ b/patches/server/0115-PlayerBookTooLargeEvent.patch @@ -5,12 +5,12 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 600b8280c11032339c056b2b3ad371674072e2c2..46cc4aabf1fb349d1ecead78c0041b9de8cde99d 100644 +index 1908af9183d290a1a6815866ba10172d05ff56d1..ea4ac42372919722109cd85c213877b892e8fcf9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1152,10 +1152,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1152,6 +1152,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; - double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); + double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D); long byteAllowed = maxBookPageSize; + // Purpur start + int slot = packet.slot(); @@ -18,16 +18,13 @@ index 600b8280c11032339c056b2b3ad371674072e2c2..46cc4aabf1fb349d1ecead78c0041b9d + // Purpur end for (String testString : pageList) { int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; - if (byteLength > 256 * 4) { - ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); -+ org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent event = new org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), itemstack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur - this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause - return; - } -@@ -1179,6 +1184,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + byteTotal += byteLength; +@@ -1173,7 +1177,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } if (byteTotal > byteAllowed) { - ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); +- ServerGamePacketListenerImpl.LOGGER.warn("{} tried to send a book too large. Book size: {} - Allowed: {} - Pages: {}", this.player.getScoreboardName(), byteTotal, byteAllowed, pageList.size()); ++ ServerGamePacketListenerImpl.LOGGER.warn("{} tried to send too large of a book. Book size: {} - Allowed: {} - Pages: {}", this.player.getScoreboardName(), byteTotal, byteAllowed, pageList.size()); + org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent event = new org.purpurmc.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), itemstack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; diff --git a/patches/server/0127-Dont-run-with-scissors.patch b/patches/server/0127-Dont-run-with-scissors.patch index d7350f738..ef398cf11 100644 --- a/patches/server/0127-Dont-run-with-scissors.patch +++ b/patches/server/0127-Dont-run-with-scissors.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Dont run with scissors! inspired by https://modrinth.com/mod/dont-run-with-scissors diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 46cc4aabf1fb349d1ecead78c0041b9de8cde99d..29c567fc3a7e4b30b670eeda2fd28cc55e57e451 100644 +index ea4ac42372919722109cd85c213877b892e8fcf9..f4392eb11dfba8b7423b6e917a38fa44be5c35fa 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1610,6 +1610,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1604,6 +1604,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.tryResetCurrentImpulseContext(); } @@ -23,7 +23,7 @@ index 46cc4aabf1fb349d1ecead78c0041b9de8cde99d..29c567fc3a7e4b30b670eeda2fd28cc5 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1637,6 +1644,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1631,6 +1638,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/server/0204-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0204-Shift-right-click-to-use-exp-for-mending.patch index bc4453a29..a1f20b7dd 100644 --- a/patches/server/0204-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0204-Shift-right-click-to-use-exp-for-mending.patch @@ -36,10 +36,10 @@ index fe734df8b4521101c3e55c042957a531b3bdf945..7c06b284a6cc74c0b31f8921706c7796 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 29c567fc3a7e4b30b670eeda2fd28cc55e57e451..c0c854296bc920cf79d710ad4896a895ff45c058 100644 +index f4392eb11dfba8b7423b6e917a38fa44be5c35fa..95494ad10f18bb6b700e11b6c338a52ff5a880cc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2004,6 +2004,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1998,6 +1998,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { diff --git a/patches/server/0253-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0253-Add-more-logger-output-for-invalid-movement-kicks.patch index b86328bfc..d18048245 100644 --- a/patches/server/0253-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0253-Add-more-logger-output-for-invalid-movement-kicks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more logger output for invalid movement kicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c0c854296bc920cf79d710ad4896a895ff45c058..ed8825f1bcd8e182078f16dd717cf232223ed208 100644 +index 95494ad10f18bb6b700e11b6c338a52ff5a880cc..3c038a992083f96b6406e786c5bb1177c1fe4c51 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -721,6 +721,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -16,7 +16,7 @@ index c0c854296bc920cf79d710ad4896a895ff45c058..ed8825f1bcd8e182078f16dd717cf232 this.disconnect((Component) Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause return; } -@@ -1327,7 +1328,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1321,7 +1322,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());