From 069511ca702397228a15a60dd15a7cca1711cac4 Mon Sep 17 00:00:00 2001 From: booky10 Date: Fri, 31 May 2024 23:51:42 +0200 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@23fe116 Fix missing debug trace PaperMC/Paper@b0c9b9c Only remove worldgen block entity on changed block (#10794) PaperMC/Paper@9c917fe [ci skip] Clean up paperclip build-pr workflow (#10802) PaperMC/Paper@9d6f2cc [ci skip] Rebuild patches (#10803) PaperMC/Paper@84f6e6e Fix max temper API for llama (#10823) PaperMC/Paper@672c077 handle BODY slot for non-mobs (#10822) PaperMC/Paper@716b868 Use RegistryOps for loadAdvancement (#10799) PaperMC/Paper@d9e659a Allow firework effects with no colors (#10814) PaperMC/Paper@7e2b682 Fix skipping custom block entity tag (#10812) PaperMC/Paper@ed85aac Flatten namespaced vanilla command alias redirects (#10821) PaperMC/Paper@a31dc90 Several fixes and new api for experience merging/stacking (#9242) PaperMC/Paper@efd91e5 Add registry-related argument types (#10770) PaperMC/Paper@27d2ed8 Extend fishing API (#10634) PaperMC/Paper@0fcf3e3 Deprecate InvAction#HOTBAR_MOVE_AND_READD (#10784) PaperMC/Paper@8e6554a Fix sending disconnect packet in phases where it doesn't exist PaperMC/Paper@06e69c8 Use CommandSourceStack in AsyncPlayerSendCommandsEvent (#10826) PaperMC/Paper@a47e11d fix knockback events (#10831) PaperMC/Paper@3181470 Add entity heal API (#10267) PaperMC/Paper@0513374 Fire TabCompleteEvent for legacy commands (#10834) --- gradle.properties | 2 +- ...01-Optimize-non-flush-packet-sending.patch | 4 ++-- .../0002-Pufferfish-Server-Patches.patch | 21 ++++++++----------- .../0004-Add-CloudPlane-configuration.patch | 4 ++-- ...-exceptions-caused-by-packet-sending.patch | 8 +++---- 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7ce2c0d..7acdef7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ version = 1.20.6-R0.1-SNAPSHOT mcVersion = 1.20.6 packageVersion = 1_20_R4 -paperRef = 347bbe389786d5cdae7cd1c6ec32cacba2a9aac7 +paperRef = 0513374b1f3410c2dd630f169a0cdf64a349500e org.gradle.jvmargs = -Xmx2G diff --git a/patches/server/0001-Optimize-non-flush-packet-sending.patch b/patches/server/0001-Optimize-non-flush-packet-sending.patch index c569892..8636fcd 100644 --- a/patches/server/0001-Optimize-non-flush-packet-sending.patch +++ b/patches/server/0001-Optimize-non-flush-packet-sending.patch @@ -27,7 +27,7 @@ runnables on the event loop. Co-authored-by: booky10 diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 02833deaa2bb7e5abc655bc1bdbe15c4b3ac7119..b9b29ac885a344bae6e5a39b1933afbcc42dc4d4 100644 +index f40420a6841f03983b0837e177ea2ae7c3a37ca1..8b00624b509a246ded65820ce8239df2da3eac79 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -69,6 +69,21 @@ import org.slf4j.MarkerFactory; @@ -52,7 +52,7 @@ index 02833deaa2bb7e5abc655bc1bdbe15c4b3ac7119..b9b29ac885a344bae6e5a39b1933afbc private static final float AVERAGE_PACKETS_SMOOTHING = 0.75F; private static final Logger LOGGER = LogUtils.getLogger(); public static final Marker ROOT_MARKER = MarkerFactory.getMarker("NETWORK"); -@@ -485,9 +500,24 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -486,9 +501,24 @@ public class Connection extends SimpleChannelInboundHandler> { if (this.channel.eventLoop().inEventLoop()) { this.doSendPacket(packet, callbacks, flush); } else { diff --git a/patches/server/0002-Pufferfish-Server-Patches.patch b/patches/server/0002-Pufferfish-Server-Patches.patch index 67f7ade..b0889ec 100644 --- a/patches/server/0002-Pufferfish-Server-Patches.patch +++ b/patches/server/0002-Pufferfish-Server-Patches.patch @@ -2340,7 +2340,7 @@ index 6a4637eef14cbd84bbe26ef16f004b8f93367a3d..2ca184235af8a3934f9797231a6191aa @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c450447585af4c8cdc87abe871c229ff895c3e53..7f1957d84bc22940fae4928ef787d1f29c7c3a66 100644 +index 4ae88bfcead40cd05f9514a48a922a37767cb3cf..6ccc546563ed8027eed58d5b8a20983bf09cee99 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1154,6 +1154,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2455,7 +2455,7 @@ index f402dbbfe3a443e6bc51f88b85abe937852b52f0..3bf8b021e84df0ce277d48ac370f6224 int getContainerSize(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4ee843dfd826772c9157ca421d8fe1f36f814b51..3509f92ce7007cb57d57274f89d5957b488b8559 100644 +index 7ef9f67d27cc240191dd5d07e8dcf5fbdebe1049..1d14b3c30b43fe5d4ceda067226a189653721668 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -311,7 +311,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2656,7 +2656,7 @@ index a46bf73c608641bf1f00fd55242de71a0f2ee06e..ba4b288e8db199ac31a1dbabd4cad522 return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType) type.build(id)); // CraftBukkit - decompile error } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0ddf2e1a6d2ea836f8a140a435721e0ce96bd8d2..f0f8eaab8f4a0ce0e27a687f5e021f3db8dba76d 100644 +index ce01fe82dc1eaaf06ca317ddbc62b7d1b87a48b2..4e81e61889d0345889850a0444ee724e2e5bfde4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -427,7 +427,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2685,7 +2685,7 @@ index 0ddf2e1a6d2ea836f8a140a435721e0ce96bd8d2..f0f8eaab8f4a0ce0e27a687f5e021f3d @Override public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { -@@ -2050,6 +2060,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2040,6 +2050,20 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } @@ -2707,7 +2707,7 @@ index 0ddf2e1a6d2ea836f8a140a435721e0ce96bd8d2..f0f8eaab8f4a0ce0e27a687f5e021f3d if (this.isSpectator()) { return false; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 9f42563699508fcb3d8a96cfdfc25a7bffd99759..d656c299b37c2f768d252dc11fbeff686253a6fc 100644 +index 8b612b772ca87c852d0b108c2afd6785c261c9b9..89d0594c5f385182c4bcda82fc707e523aeec2b3 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -237,14 +237,17 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti @@ -3945,18 +3945,15 @@ index 88a4a72bb390947dc17e5da09a99b2d1b3ac4621..d52b48181feca2ab9723a7342240bd51 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index af015237214cebc4d1c4bb9e9c5f939d433e365c..eca42acc4dd92d0466e2625191b814038f748f30 100644 +index 94a31c8f903eb61eb6d203e8e6fe8fb0beca28b1..daa60d4d15cfef5221f68e4538e477901b3ad459 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1124,6 +1124,11 @@ public final class CraftServer implements Server { +@@ -1124,7 +1124,7 @@ public final class CraftServer implements Server { plugin.getPluginMeta().getDisplayName(), "This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies." )); -+ getLogger().log(Level.SEVERE, String.format("%s Stacktrace", worker.getThread().getName())); -+ StackTraceElement[] stackTrace = worker.getThread().getStackTrace(); -+ for (StackTraceElement element : stackTrace) { -+ getLogger().log(Level.SEVERE, " " + element.toString()); -+ } +- if (console.isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread(worker.getThread(), "still running"); // Paper - Debugging ++ if (true || console.isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread(worker.getThread(), "still running"); // Paper - Debugging // Pufferfish } } // Paper end - Wait for Async Tasks during shutdown diff --git a/patches/server/0004-Add-CloudPlane-configuration.patch b/patches/server/0004-Add-CloudPlane-configuration.patch index cf15c0e..320c2b3 100644 --- a/patches/server/0004-Add-CloudPlane-configuration.patch +++ b/patches/server/0004-Add-CloudPlane-configuration.patch @@ -242,7 +242,7 @@ index fdd51dd4a244775a1a172ae435be087a90a03e68..59c135fb5fe94bb0266be319885f0104 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index eca42acc4dd92d0466e2625191b814038f748f30..98cdffe03b6dcb3c733040ed815f5deca47ac234 100644 +index daa60d4d15cfef5221f68e4538e477901b3ad459..eda4fc3ee28f8bbae1199044a3e73d7e96154082 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1033,6 +1033,7 @@ public final class CraftServer implements Server { @@ -253,7 +253,7 @@ index eca42acc4dd92d0466e2625191b814038f748f30..98cdffe03b6dcb3c733040ed815f5dec for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -3034,6 +3035,13 @@ public final class CraftServer implements Server { +@@ -3030,6 +3031,13 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/patches/server/0010-Log-exceptions-caused-by-packet-sending.patch b/patches/server/0010-Log-exceptions-caused-by-packet-sending.patch index 508b314..ea5fd7b 100644 --- a/patches/server/0010-Log-exceptions-caused-by-packet-sending.patch +++ b/patches/server/0010-Log-exceptions-caused-by-packet-sending.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Log exceptions caused by packet sending diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index b9b29ac885a344bae6e5a39b1933afbcc42dc4d4..5851d614025716d0625c123d8196a2ecc705255c 100644 +index 8b00624b509a246ded65820ce8239df2da3eac79..dfd48720f4517cd78aeaedcd9608f3b3780b31f1 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -228,7 +228,7 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -14,10 +14,10 @@ index b9b29ac885a344bae6e5a39b1933afbcc42dc4d4..5851d614025716d0625c123d8196a2ec if (flag) { - Connection.LOGGER.debug("Failed to sent packet", throwable); + Connection.LOGGER.error("Failed to sent packet", throwable); // CloudPlane - if (this.getSending() == PacketFlow.CLIENTBOUND) { + boolean doesDisconnectExist = this.packetListener.protocol() != ConnectionProtocol.STATUS && this.packetListener.protocol() != ConnectionProtocol.HANDSHAKING; // Paper + if (this.getSending() == PacketFlow.CLIENTBOUND && doesDisconnectExist) { // Paper Packet packet = this.sendLoginDisconnect ? new ClientboundLoginDisconnectPacket(ichatmutablecomponent) : new ClientboundDisconnectPacket(ichatmutablecomponent); - -@@ -241,7 +241,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -242,7 +242,7 @@ public class Connection extends SimpleChannelInboundHandler> { this.setReadOnly(); } else {