From 30ca1d8dcdd6d2473b224e914f7f7862c03d3fef Mon Sep 17 00:00:00 2001 From: Samsuik Date: Tue, 1 Jul 2025 22:48:57 +0100 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@4e1a255 Update try catch for command handling PaperMC/Paper@e382e68 Fix 0 yield on explosion events PaperMC/Paper@35b2c6e Use dropped item for stats info (#12747) PaperMC/Paper@bd79e20 [ci skip] PluginManager#getPlugin and PluginManager#isPluginEnabled are case-insensitive (#12723) PaperMC/Paper@57c202e Allow adventure nbt codec to parse all tags PaperMC/Paper@4d854e6 Disable MC-163962 fix by default PaperMC/Paper@dda39a0 1.21.7-rc2 PaperMC/Paper@7f60924 Configuration API (#12301) PaperMC/Paper@371a422 Remove a bunch more experimental annotations (#12712) PaperMC/Paper@a9f74cb Readd dropped diff during 1.21.6 PaperMC/Paper@4045339 1.21.7 PaperMC/Paper@4c47c76 Update DataConverter constants for 1.21.7 PaperMC/Paper@9686f8b Enable obfuscation mappings for 1.21.7 (#12770) PaperMC/Paper@723510f Make warning of PlayerLoginEvent use unique plugin names (#12772) PaperMC/Paper@4cdcf00 Only namespaced reload (#12773) PaperMC/Paper@00e79df Fix wrong size in InventoryType#PLAYER (#12758) PaperMC/Paper@6e021c8 Fix CraftContainer#getNotchInventoryType detection of player inventory (#12751) PaperMC/Paper@5661fbb Add registry builder for Instrument (#12682) PaperMC/Paper@51d28af [ci skip] Typo in CartographyInventory (#12777) PaperMC/Paper@6ea679e Allow listening to plugin messages during configuration phase (#12775) PaperMC/Paper@c3be00f Always call plugin message dispatch on PlayerConnection PaperMC/Paper@3fec37a Move the double call into the dispatch method PaperMC/Paper@108255c Reduce PlayerLoginEvent alt behavior nag for now (#12782) PaperMC/Paper@2141ca5 Port plugins command to brigadier (#12632) --- gradle.properties | 4 +-- .../0001-Client-Visibility-Settings-API.patch | 4 +-- .../java/org/bukkit/entity/Player.java.patch | 2 +- sakura-server/build.gradle.kts.patch | 6 ++-- .../0002-Client-Visibility-Settings.patch | 36 +++++++++---------- .../server/level/ServerPlayer.java.patch | 4 +-- .../0001-Client-Visibility-Settings.patch | 8 ++--- .../craftbukkit/entity/CraftPlayer.java.patch | 2 +- 8 files changed, 33 insertions(+), 33 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1b1dddc..3b2ebb2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ group=me.samsuik.sakura version=1.21.7-R0.1-SNAPSHOT -mcVersion=1.21.7-rc2 +mcVersion=1.21.7 -paperRef=da53f1139ff5807b4114c44812c571034f036ea6 +paperRef=2141ca5273113c71593d5f00a5c93dc9d2d841c5 org.gradle.jvmargs=-Xmx2G org.gradle.vfs.watch=false diff --git a/sakura-api/paper-patches/features/0001-Client-Visibility-Settings-API.patch b/sakura-api/paper-patches/features/0001-Client-Visibility-Settings-API.patch index 85a17fa..38280a6 100644 --- a/sakura-api/paper-patches/features/0001-Client-Visibility-Settings-API.patch +++ b/sakura-api/paper-patches/features/0001-Client-Visibility-Settings-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Client Visibility Settings API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index aeb6fe2329b06082c465cc9df10713a70243aeef..ccda08ea0f86164af26021432a622c88ff6a8183 100644 +index 8127c961793c5a5332fbb66fa95b8a0bf3fdc4df..3b51a842e85425c84fc7d8e52f13282d2cf6b3b5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -69,6 +69,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -70,6 +70,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void setTrackingRangeModifier(double mod); // Sakura end - entity tracking range modifier diff --git a/sakura-api/paper-patches/files/src/main/java/org/bukkit/entity/Player.java.patch b/sakura-api/paper-patches/files/src/main/java/org/bukkit/entity/Player.java.patch index a2eba9e..d3e32ee 100644 --- a/sakura-api/paper-patches/files/src/main/java/org/bukkit/entity/Player.java.patch +++ b/sakura-api/paper-patches/files/src/main/java/org/bukkit/entity/Player.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -64,6 +_,12 @@ +@@ -65,6 +_,12 @@ @NullMarked public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginMessageRecipient, net.kyori.adventure.identity.Identified, net.kyori.adventure.bossbar.BossBarViewer, com.destroystokyo.paper.network.NetworkClient { // Paper diff --git a/sakura-server/build.gradle.kts.patch b/sakura-server/build.gradle.kts.patch index 0f9621a..7865435 100644 --- a/sakura-server/build.gradle.kts.patch +++ b/sakura-server/build.gradle.kts.patch @@ -7,7 +7,7 @@ +val serverBrand = rootProject.name dependencies { - mache("io.papermc:mache:1.21.7-rc1+build.2") + mache("io.papermc:mache:1.21.7+build.1") @@ -26,6 +_,17 @@ minecraftVersion = providers.gradleProperty("mcVersion") gitFilePatches = false @@ -24,8 +24,8 @@ + activeFork = fork + spigot { - enabled = false - buildDataRef = "281ac0de7a76d808753ede97d11b034bc801b63d" + enabled = true + buildDataRef = "436eac9815c211be1a2a6ca0702615f995e81c44" @@ -107,7 +_,20 @@ } } diff --git a/sakura-server/minecraft-patches/features/0002-Client-Visibility-Settings.patch b/sakura-server/minecraft-patches/features/0002-Client-Visibility-Settings.patch index 334626d..d0feaf5 100644 --- a/sakura-server/minecraft-patches/features/0002-Client-Visibility-Settings.patch +++ b/sakura-server/minecraft-patches/features/0002-Client-Visibility-Settings.patch @@ -132,28 +132,28 @@ index 03a157f6c96b0f39effa24ae278eeac689c83ee8..5f38281763419123a0611cbb34d9a02a } diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index 94da87a5f468b0b4c80d63054e6184417d2c7b76..d5fdc43302fdbed0a6e83b6033fb05baa8b6445e 100644 +index 7b341b8c65ebab8e352252df2b47f40ce3c0db4f..5c812e81a74d8f1df8a1a7ac98f84f44aec264c3 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java -@@ -526,6 +526,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc - } +@@ -460,6 +460,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc + return this.viewDistanceHolder; } - // Paper end - improve keepalives + // Paper end - rewrite chunk system + public final me.samsuik.sakura.player.visibility.PlayerVisibilitySettings visibilitySettings = new me.samsuik.sakura.player.visibility.PlayerVisibilitySettings(); // Sakura - client visibility settings public ServerPlayer(MinecraftServer server, ServerLevel level, GameProfile gameProfile, ClientInformation clientInformation) { super(level, gameProfile); diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..6ccc1cd38ccc4f346caad807db84b83a1c0f55dc 100644 +index 2e7c4c74818befd25e296b58ef9f20319544c2fb..5c661e0eadcde02f2c5f00c86651a50fe68171ad 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -53,6 +53,21 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - public final java.util.Map packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks - private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit - protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support +@@ -57,6 +57,21 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack + public @Nullable String playerBrand; + public final java.util.Set pluginMessagerChannels; + // Paper end - retain certain values + // Sakura start - client visibility settings + private @Nullable Packet recreatePacket(final Packet packet) { -+ final me.samsuik.sakura.player.visibility.VisibilitySettings settings = this.player.visibilitySettings; ++ final me.samsuik.sakura.player.visibility.VisibilitySettings settings = this.connection.getPlayer().visibilitySettings; + if (packet instanceof net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket bedPacket) { + if (settings.isToggled(me.samsuik.sakura.player.visibility.VisibilityTypes.SPAWNERS) && bedPacket.getType() == net.minecraft.world.level.block.entity.BlockEntityType.MOB_SPAWNER) { + return null; @@ -167,14 +167,14 @@ index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..6ccc1cd38ccc4f346caad807db84b83a + } + // Sakura end - client visibility settings - public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit + public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie) { this.server = server; -@@ -330,6 +345,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - } else if (packet instanceof net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket defaultSpawnPositionPacket) { - this.player.compassTarget = org.bukkit.craftbukkit.util.CraftLocation.toBukkit(defaultSpawnPositionPacket.getPos(), this.getCraftPlayer().getWorld()); +@@ -305,6 +320,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack + } else if (packet instanceof net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket defaultSpawnPositionPacket && this instanceof ServerGamePacketListenerImpl serverGamePacketListener) { + serverGamePacketListener.player.compassTarget = org.bukkit.craftbukkit.util.CraftLocation.toBukkit(defaultSpawnPositionPacket.getPos(), serverGamePacketListener.getCraftPlayer().getWorld()); } + // Sakura start - client visibility settings -+ if (this.player.visibilitySettings.playerModified()) { ++ if (this.connection.getPlayer().visibilitySettings.playerModified()) { + packet = this.recreatePacket(packet); + if (packet == null) return; + } @@ -182,7 +182,7 @@ index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..6ccc1cd38ccc4f346caad807db84b83a // CraftBukkit end if (packet.isTerminal()) { this.close(); -@@ -342,7 +363,10 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -317,7 +338,10 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } catch (Throwable var7) { CrashReport crashReport = CrashReport.forThrowable(var7, "Sending packet"); CrashReportCategory crashReportCategory = crashReport.addCategory("Packet being sent"); @@ -195,10 +195,10 @@ index 43f70a5561d6cc62aaeba6d1e39598ecb382e369..6ccc1cd38ccc4f346caad807db84b83a } } diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 625eae18ab13ae27949128f6325b3608a557cf1f..74c11280979d170a635a997c3a3acf489b3eaa6a 100644 +index ef9a0cbf75fb79d289d1d788ba0e5f181e3cdddd..661046c8c0f6d6116a8b785820f4bcfbda7f43b4 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3204,6 +3204,7 @@ public class ServerGamePacketListenerImpl +@@ -3202,6 +3202,7 @@ public class ServerGamePacketListenerImpl event.setCancelled(cancelled); net.minecraft.world.inventory.AbstractContainerMenu oldContainer = this.player.containerMenu; // SPIGOT-1224 diff --git a/sakura-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch b/sakura-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch index 88a4283..18e9350 100644 --- a/sakura-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch +++ b/sakura-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch @@ -1,8 +1,8 @@ --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java -@@ -431,6 +_,7 @@ +@@ -429,6 +_,7 @@ + public boolean isRealPlayer; // Paper public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent - public @Nullable String clientBrandName = null; // Paper - Brand support public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event + public double trackingRangeModifier = 1.0; // Sakura - entity tracking range modifier diff --git a/sakura-server/paper-patches/features/0001-Client-Visibility-Settings.patch b/sakura-server/paper-patches/features/0001-Client-Visibility-Settings.patch index 0b70753..e6ebd01 100644 --- a/sakura-server/paper-patches/features/0001-Client-Visibility-Settings.patch +++ b/sakura-server/paper-patches/features/0001-Client-Visibility-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Client Visibility Settings diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2cdb2d19eb8a2650dc671d70438cddffd72140f3..a899c10a4d8335c9dad3b9b0abe3e4d63e76324a 100644 +index 18a15c5eb122e420bc2d429572e74be620ccd400..d4a5f6d6b3530deb563d9c712a805290ea88117f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2387,6 +2387,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2324,6 +2324,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa handle.expToDrop = data.getIntOr("expToDrop", 0); handle.keepLevel = data.getBooleanOr("keepLevel", false); }); @@ -20,7 +20,7 @@ index 2cdb2d19eb8a2650dc671d70438cddffd72140f3..a899c10a4d8335c9dad3b9b0abe3e4d6 } public void setExtraData(ValueOutput output) { -@@ -2408,6 +2413,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2345,6 +2350,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa paper.putLong("LastLogin", handle.loginTime); paper.putLong("LastSeen", System.currentTimeMillis()); // Paper end @@ -31,7 +31,7 @@ index 2cdb2d19eb8a2650dc671d70438cddffd72140f3..a899c10a4d8335c9dad3b9b0abe3e4d6 } @Override -@@ -3074,6 +3083,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3003,6 +3012,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa return this.getHandle().allowsListing(); } diff --git a/sakura-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java.patch b/sakura-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java.patch index 863c14e..1a9a333 100644 --- a/sakura-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java.patch +++ b/sakura-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -246,6 +_,18 @@ +@@ -234,6 +_,18 @@ this.firstPlayed = System.currentTimeMillis(); }