From 2c5cf398feea835bf7d5a9b2b194f992c4b0cb7d Mon Sep 17 00:00:00 2001 From: booky10 Date: Mon, 19 Feb 2024 08:40:29 +0100 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@9e171ef Improve tag parser handling, move hunks out of chunk system patch PaperMC/Paper@934cd77 Lifecycle Event System (#9629) PaperMC/Paper@534659e Fix NotNull locales (#10216) PaperMC/Paper@9c04729 Add Arrow/Stinger Removal Time API (#10193) PaperMC/Paper@69b52b4 Check for server JARs in plugin directory (#10228) PaperMC/Paper@cbe62d9 Add Conduit API (#10195) PaperMC/Paper@97c0120 Fix fox drops on death (#8862) PaperMC/Paper@581fb30 itemstack expose tooltip lines (#10185) PaperMC/Paper@99bae59 Propagate failed to bind to port error (#10235) PaperMC/Paper@bf6e803 Fix WaterBottleSplashEvent not forwarding hit result (#10203) PaperMC/Paper@2fa2d32 Fix possible StackOverflowError for some dispenser iteractions (#8524) PaperMC/Paper@e6a5215 Properly track the changed item from dispense events (#8658) PaperMC/Paper@4b58a85 Fire BlockPreDispenseEvent for droppers (#10226) PaperMC/Paper@cde5587 Add getChunkSnapshot includeLightData parameter (#10234) PaperMC/Paper@31699ae Updated Upstream (Bukkit/CraftBukkit) (#10242) PaperMC/Paper@37df121 Fix BlockState being set to null for damage events (#10252) PaperMC/Paper@7f85940 Updated Upstream (Bukkit) (#10255) PaperMC/Paper@7ccefdc Fire entity knockback event for ownerless tnt (#7171) PaperMC/Paper@a07d526 [ci skip] Fix JavaDoc mistake in BlockPistonRetractEvent (#10250) PaperMC/Paper@9a66f2b [ci skip] Fix javadoc mistake in PluginMeta (#10258) PaperMC/Paper@1964b22 Scoreboard objective number format api (#10036) PaperMC/Paper@d95341e FluidState API (#9951) PaperMC/Paper@351923d Run round-trip adventure codec tests with JSON, NBT, and Java ops. Use JavaOps for conversions. (#10031) PaperMC/Paper@4939f87 Add more ResourceLocation checks, some cleanup --- gradle.properties | 2 +- .../0002-Add-CloudPlane-configuration.patch | 4 +- .../0002-Pufferfish-Server-Patches.patch | 42 +++++++++---------- patches/server/0003-Change-branding.patch | 8 ++-- .../0004-Add-CloudPlane-configuration.patch | 8 ++-- .../server/0005-Add-allowPvP-gamerule.patch | 6 +-- ...translate-custom-item-names-and-lore.patch | 4 +- .../0007-Add-more-detailed-brand-info.patch | 4 +- ...13-Resend-more-data-on-locale-change.patch | 24 +++-------- 9 files changed, 44 insertions(+), 58 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2abb2ad..e31c9b3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ version = 1.20.4-R0.1-SNAPSHOT mcVersion = 1.20.4 packageVersion = 1_20_R3 -paperRef = c5d168cef92148a6799141832fdb5f95732c1a38 +paperRef = 4939f8711884901ddf1c56337f606de71cdae78d org.gradle.jvmargs = -Xmx2G diff --git a/patches/api/0002-Add-CloudPlane-configuration.patch b/patches/api/0002-Add-CloudPlane-configuration.patch index 7b4c53a..da44fab 100644 --- a/patches/api/0002-Add-CloudPlane-configuration.patch +++ b/patches/api/0002-Add-CloudPlane-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add CloudPlane configuration diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 9af4bc16da09e59009c47911219e99450cdf2aa5..4be9f47d41c17ce8d0b221289e7735dd648c660c 100644 +index b4f8281d3797ec825a7671f38077cd65d5a1d76e..0fc4abda46c6abdb81f67ff2dc39359c0e004364 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2198,6 +2198,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2214,6 +2214,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end diff --git a/patches/server/0002-Pufferfish-Server-Patches.patch b/patches/server/0002-Pufferfish-Server-Patches.patch index 70edd25..1624fcb 100644 --- a/patches/server/0002-Pufferfish-Server-Patches.patch +++ b/patches/server/0002-Pufferfish-Server-Patches.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pufferfish Server Patches diff --git a/build.gradle.kts b/build.gradle.kts -index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..6d54e1145ad71c0a66416f96ddd5c7c54374371b 100644 +index ce3747d8d2a8f4327766cf23d5aaa72cfcb380bc..c3575658207faf8ea835de1bbcb4605cf2381117 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -50,6 +50,14 @@ dependencies { @@ -23,7 +23,7 @@ index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..6d54e1145ad71c0a66416f96ddd5c7c5 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") testImplementation("org.hamcrest:hamcrest:2.2") -@@ -57,6 +65,14 @@ dependencies { +@@ -58,6 +66,14 @@ dependencies { } val craftbukkitPackageVersion = "1_20_R3" // Paper @@ -2030,7 +2030,7 @@ index d06185566b447c432d4dc2e3ba04d121bcdbc71b..91eb7d831db2e6c2b7e259151503afbf } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 6de6dad36203479677a29ad61e21bc369d4e5513..85f1811c572b86ac43cc90db8f4d93bbd7efde51 100644 +index 68d268b6fff126e8645b6deec3fb549ea2286b77..78e4675113ff2189a7bf3d418fe4adb21f6e6c37 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -221,6 +221,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -2042,7 +2042,7 @@ index 6de6dad36203479677a29ad61e21bc369d4e5513..85f1811c572b86ac43cc90db8f4d93bb this.setPvpAllowed(dedicatedserverproperties.pvp); this.setFlightAllowed(dedicatedserverproperties.allowFlight); -@@ -338,6 +340,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -339,6 +341,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface DedicatedServer.LOGGER.info("JMX monitoring enabled"); } @@ -2305,7 +2305,7 @@ index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..269cb7c54e2f22b0c05b9600162df937 this.getRandomBlockPosition(j, 0, k, 15, blockposition); this.tickPrecipitation(blockposition, chunk); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0dba30c41affafe7b1d585b515925043b37712fa..e9adae2f97ce6e6296c0cda99399ee0170514de3 100644 +index 58591bf2f63b9c5e97d9ce4188dff3366968a178..3bcd75b7d8f2077d0081a9d1acbf40bad24d2406 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1253,6 +1253,7 @@ public class ServerPlayer extends Player { @@ -2341,10 +2341,10 @@ index 0dba30c41affafe7b1d585b515925043b37712fa..e9adae2f97ce6e6296c0cda99399ee01 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2562ea3b63b055319a775c12ff327d127f8039c3..29d0dd89ae19799d76ac95128ae19387ef640d56 100644 +index ab5b259d8f72022c875cae73be25fe2da346c6b3..b397719aa86440ca2f9168414b77d4180fede068 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1120,6 +1120,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1135,6 +1135,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -2456,7 +2456,7 @@ index d6cbe98e67fdbf8db46338a88ab1356dd63b50a3..49c1d677db8fcf53b39bd9673259b88d int DEFAULT_DISTANCE_LIMIT = 8; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9ee1e3da1cb16291ff3e37829e25227a6b97a177..0aab277908d1b885916fb2276dc3aa3f332d51cf 100644 +index 906eded9a2ab61737a30cfe89292a71237ce4eb7..734e792451d878aba40f287bd21203a176366b01 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2535,7 +2535,7 @@ index 9ee1e3da1cb16291ff3e37829e25227a6b97a177..0aab277908d1b885916fb2276dc3aa3f this.baseTick(); } -@@ -4402,16 +4422,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4405,16 +4425,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -2561,7 +2561,7 @@ index 9ee1e3da1cb16291ff3e37829e25227a6b97a177..0aab277908d1b885916fb2276dc3aa3f double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4419,14 +4441,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4422,14 +4444,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2629,7 +2629,7 @@ index 9ee1e3da1cb16291ff3e37829e25227a6b97a177..0aab277908d1b885916fb2276dc3aa3f if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4448,9 +4517,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4451,9 +4520,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end } } @@ -2657,10 +2657,10 @@ index 09e8445a3f8c6b3ebc852a75a9a25b41a51ba659..8e52c29fa25f5ce6734682a95c613420 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 6523795e715e5d472739e9bc6433143115c3de8f..6727252aa32597ceba5f59d45d8bbe643e919024 100644 +index aceee33eebd4d5f89e62a42910ec51843f33843b..d9ea8306a3eb246ec7e8bb0651f4d7e4628f73b7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -412,7 +412,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -413,7 +413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { boolean flag = this instanceof net.minecraft.world.entity.player.Player; if (!this.level().isClientSide) { @@ -2669,7 +2669,7 @@ index 6523795e715e5d472739e9bc6433143115c3de8f..6727252aa32597ceba5f59d45d8bbe64 this.hurt(this.damageSources().inWall(), 1.0F); } else if (flag && !this.level().getWorldBorder().isWithinBounds(this.getBoundingBox())) { double d0 = this.level().getWorldBorder().getDistanceToBorder(this) + this.level().getWorldBorder().getDamageSafeZone(); -@@ -1409,6 +1409,16 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1410,6 +1410,16 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.getHealth() <= 0.0F; } @@ -2686,7 +2686,7 @@ index 6523795e715e5d472739e9bc6433143115c3de8f..6727252aa32597ceba5f59d45d8bbe64 @Override public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { -@@ -2003,6 +2013,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2016,6 +2026,20 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } @@ -2708,7 +2708,7 @@ index 6523795e715e5d472739e9bc6433143115c3de8f..6727252aa32597ceba5f59d45d8bbe64 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 24629412d2b4acaa81788ce70412b03387cc777c..13016a98c2e449811664d13abae8e944a2537349 100644 +index fa0b78139fecc0245e168ebeb4172ea2531a3fec..1b9814e870b100ca621d00a8c68d5aca1d9e0781 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -221,14 +221,17 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -2924,7 +2924,7 @@ index b21e180641d17438997a80e5bcb0ec7998d24a2e..8db589a4cc9984f13f4636fe3c8f3001 this.level().getProfiler().pop(); this.level().getProfiler().push("axolotlActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index f693d4d6a6a3c3d31c2d85ceb5b5b01366c970a1..e500f446af10d9ba8530638f7ea1682329046357 100644 +index 1f09d47b0ffb07b49b4d8bd79a371dd61f1c2a92..d8b5946107c89587baf6d3bcbff0180522c2b1c5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -145,10 +145,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -3687,7 +3687,7 @@ index a61d7cd2b078fe511ff00344197b6ea11feebfb2..2a856159096b354e8219483f3ad2b1b0 public static void entityInside(Level world, BlockPos pos, BlockState state, Entity entity, HopperBlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index a94300a457b25f0e33a8eeabba6dd5720ca9ab1e..3bb1bfa29ebbfc3ba15193dee6fb40cef179bb0c 100644 +index f52ccd4f3e062af3c7cc6eaea5b074a3bbd21690..bccb31597695ce54bac3e7a24ae80b9aa13570dd 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java @@ -93,14 +93,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @@ -3964,10 +3964,10 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4df3b94c8126f00188f5e125757411a0359728fa..a60edc00952185bc38019372005657cdd21a35ed 100644 +index 9f7ed337463cc9bb370a5541d9de5cd8f9c1a78a..4b4449fbdb2ff58f2bc85831b7c5c5eb0deac21a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1120,6 +1120,11 @@ public final class CraftServer implements Server { +@@ -1137,6 +1137,11 @@ 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." )); @@ -3992,7 +3992,7 @@ index 96d772eb02f79f8c478f5e6f065e387aa7665b18..c5ce412f321b8b4f31cc042893659e21 } } diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/MinecraftInternalPlugin.java b/src/main/java/org/bukkit/craftbukkit/scheduler/MinecraftInternalPlugin.java -index d96399e9bf1a58db5a4a22e58abb99e7660e0694..eb19f679ee498e51d02fe9a961cf02699cf75848 100644 +index 66bdac50130f523f9dc4379b103b7a469f9ca36b..ef780e0566dbac07da88ba26dc595b49c8ff5ab3 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/MinecraftInternalPlugin.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/MinecraftInternalPlugin.java @@ -22,7 +22,8 @@ public class MinecraftInternalPlugin extends PluginBase { diff --git a/patches/server/0003-Change-branding.patch b/patches/server/0003-Change-branding.patch index fb61ad0..7923ac2 100644 --- a/patches/server/0003-Change-branding.patch +++ b/patches/server/0003-Change-branding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Change branding diff --git a/build.gradle.kts b/build.gradle.kts -index 6d54e1145ad71c0a66416f96ddd5c7c54374371b..1253a3baa15a1943c85f41111d1bfdd33a233769 100644 +index c3575658207faf8ea835de1bbcb4605cf2381117..55d1da6fa402f2ffc6f747196d407060176f3bb7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,10 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -21,7 +21,7 @@ index 6d54e1145ad71c0a66416f96ddd5c7c54374371b..1253a3baa15a1943c85f41111d1bfdd3 // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -85,7 +87,7 @@ tasks.jar { +@@ -86,7 +88,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -118,10 +118,10 @@ index 91eb7d831db2e6c2b7e259151503afbf3c8aa8e0..6018901e7ac605dfc088df55ab9ca38b public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a60edc00952185bc38019372005657cdd21a35ed..d003ce61fdf7750ae1597699bea74dc0ffb0fdb8 100644 +index 4b4449fbdb2ff58f2bc85831b7c5c5eb0deac21a..1eeaf3ac76a3dc8b559fb4629a0283b012211388 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper +@@ -266,7 +266,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { diff --git a/patches/server/0004-Add-CloudPlane-configuration.patch b/patches/server/0004-Add-CloudPlane-configuration.patch index 02a6f2d..0d3fa01 100644 --- a/patches/server/0004-Add-CloudPlane-configuration.patch +++ b/patches/server/0004-Add-CloudPlane-configuration.patch @@ -213,7 +213,7 @@ index 0000000000000000000000000000000000000000..3d12a4fb9e6acb412d80bff777d08771 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 85f1811c572b86ac43cc90db8f4d93bbd7efde51..701bfdeae23715d6891772062263b8dd137bfd2c 100644 +index 78e4675113ff2189a7bf3d418fe4adb21f6e6c37..3e875fb6e547812995f4efbb3509fe044c8932cd 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -223,6 +223,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -242,10 +242,10 @@ index fa3ca8d83c247d6023736721e2632cca2702b99f..d31e41127959e448f2f3c735673f0286 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 d003ce61fdf7750ae1597699bea74dc0ffb0fdb8..651b5d45aa84f854edd6767dd3a4e4bd6510b149 100644 +index 1eeaf3ac76a3dc8b559fb4629a0283b012211388..47deae9cb5c9a9350bfef89c9a55878c010b6a8d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server { +@@ -1054,6 +1054,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); @@ -253,7 +253,7 @@ index d003ce61fdf7750ae1597699bea74dc0ffb0fdb8..651b5d45aa84f854edd6767dd3a4e4bd 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)) -@@ -3001,6 +3002,13 @@ public final class CraftServer implements Server { +@@ -3018,6 +3019,13 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/patches/server/0005-Add-allowPvP-gamerule.patch b/patches/server/0005-Add-allowPvP-gamerule.patch index b0d6127..92e6cfd 100644 --- a/patches/server/0005-Add-allowPvP-gamerule.patch +++ b/patches/server/0005-Add-allowPvP-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add allowPvP gamerule diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e9adae2f97ce6e6296c0cda99399ee0170514de3..9f9624e2cb98ae72bbb81377617cdc775ff88363 100644 +index 3bcd75b7d8f2077d0081a9d1acbf40bad24d2406..881e893878a7d3b17ae272bbf25ff7dc53dc8c9a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1517,7 +1517,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index e9adae2f97ce6e6296c0cda99399ee0170514de3..9f9624e2cb98ae72bbb81377617cdc77 @Override diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index c246981987017a2f86c5d632929356855e2b5714..76664730a3d1605a0b0568e2151e261635ecf8a5 100644 +index 4a340bd1f1859e43bb58e68aee4018fdb4ca7a5a..bfb820c0cde07e486bb62607c9cac3c91bde133e 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java -@@ -113,6 +113,8 @@ public class GameRules { +@@ -114,6 +114,8 @@ public class GameRules { public static final GameRules.Key RULE_GLOBAL_SOUND_EVENTS = GameRules.register("globalSoundEvents", GameRules.Category.MISC, GameRules.BooleanValue.create(true)); public static final GameRules.Key RULE_DO_VINES_SPREAD = GameRules.register("doVinesSpread", GameRules.Category.UPDATES, GameRules.BooleanValue.create(true)); public static final GameRules.Key RULE_ENDER_PEARLS_VANISH_ON_DEATH = GameRules.register("enderPearlsVanishOnDeath", GameRules.Category.PLAYER, GameRules.BooleanValue.create(true)); diff --git a/patches/server/0006-Add-option-to-translate-custom-item-names-and-lore.patch b/patches/server/0006-Add-option-to-translate-custom-item-names-and-lore.patch index 84b9ac2..65dfd8f 100644 --- a/patches/server/0006-Add-option-to-translate-custom-item-names-and-lore.patch +++ b/patches/server/0006-Add-option-to-translate-custom-item-names-and-lore.patch @@ -106,10 +106,10 @@ index 0000000000000000000000000000000000000000..a9a0117234026f119a64c2ae6c514730 + } +} diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java -index ca80cbe422d766b3d044a5b53ce40bb7f92558e4..d490531bcb91904b64329c55071ff47f4307b136 100644 +index cf5a4c142ed6d9ab4850373a9041bdc6af5a2a71..d9cba5921b3917cc024381abdde7b56832392836 100644 --- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java -@@ -215,7 +215,7 @@ public final class PaperAdventure { +@@ -217,7 +217,7 @@ public final class PaperAdventure { return PlainTextComponentSerializer.plainText().serialize(translated(component, locale)); } diff --git a/patches/server/0007-Add-more-detailed-brand-info.patch b/patches/server/0007-Add-more-detailed-brand-info.patch index 0c8417b..79cc7c1 100644 --- a/patches/server/0007-Add-more-detailed-brand-info.patch +++ b/patches/server/0007-Add-more-detailed-brand-info.patch @@ -43,10 +43,10 @@ index 76f31845fe50200d09e5ab6a6c08da00444414ad..9e0388a6fc638db8be3f6fed73bbbf84 this.send(new ClientboundUpdateEnabledFeaturesPacket(FeatureFlags.REGISTRY.toNames(this.server.getWorldData().enabledFeatures()))); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 651b5d45aa84f854edd6767dd3a4e4bd6510b149..24db3835d919dacf614bd52eea365f0757c280ca 100644 +index 47deae9cb5c9a9350bfef89c9a55878c010b6a8d..1ebb1da427e8d9b3e2ca4984b288c1bb6a02d528 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -265,7 +265,7 @@ import javax.annotation.Nonnull; // Paper +@@ -267,7 +267,7 @@ import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { private final String serverName = "CloudPlane"; // Paper // CloudPlane diff --git a/patches/server/0013-Resend-more-data-on-locale-change.patch b/patches/server/0013-Resend-more-data-on-locale-change.patch index 8f4e107..618e0f8 100644 --- a/patches/server/0013-Resend-more-data-on-locale-change.patch +++ b/patches/server/0013-Resend-more-data-on-locale-change.patch @@ -27,7 +27,7 @@ index 24e5993b281448734eb67c7a8439a349bbf9fd72..1e3864d864dc2e10e3c19ea1aae6d0e3 this.player = owner; } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9f9624e2cb98ae72bbb81377617cdc775ff88363..64cf742dcb5139f07ec0b0cc1bd31cccbc076c8a 100644 +index 881e893878a7d3b17ae272bbf25ff7dc53dc8c9a..1f06a468a54aa0068fbe1f4831133d58b325e00a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -329,6 +329,10 @@ public class ServerPlayer extends Player { @@ -41,18 +41,13 @@ index 9f9624e2cb98ae72bbb81377617cdc775ff88363..64cf742dcb5139f07ec0b0cc1bd31ccc public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); this.chatVisibility = ChatVisiblity.FULL; -@@ -2146,10 +2150,39 @@ public class ServerPlayer extends Player { - PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), this.getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); - this.server.server.getPluginManager().callEvent(event); - } -+ java.util.Locale adventure$locale = net.kyori.adventure.translation.Translator.parseLocale(clientOptions.language()); // CloudPlane - parsing was moved up - if (this.language == null || !this.language.equals(clientOptions.language())) { // Paper +@@ -2150,6 +2154,34 @@ public class ServerPlayer extends Player { PlayerLocaleChangeEvent event = new PlayerLocaleChangeEvent(this.getBukkitEntity(), clientOptions.language()); this.server.server.getPluginManager().callEvent(event); this.server.server.getPluginManager().callEvent(new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), this.language, clientOptions.language())); // Paper + + // CloudPlane start - update more data on locale change -+ // don't allow players to destroy the server by sending not that many packets ++ // don't allow players to crash the server with only a few packets + if (this.lastLocaleChange + 1000L < System.currentTimeMillis()) { + this.lastLocaleChange = System.currentTimeMillis(); + this.advancements.refreshAll(); @@ -77,19 +72,10 @@ index 9f9624e2cb98ae72bbb81377617cdc775ff88363..64cf742dcb5139f07ec0b0cc1bd31ccc + } + } + } -+ // CloudPlane end ++ // CloudPlane end - update more data on locale change } // CraftBukkit end // Paper start - don't call options events on login -@@ -2158,7 +2191,7 @@ public class ServerPlayer extends Player { - public void updateOptionsNoEvents(ClientInformation clientOptions) { - // Paper end - this.language = clientOptions.language(); -- this.adventure$locale = net.kyori.adventure.translation.Translator.parseLocale(this.language); // Paper -+ this.adventure$locale = adventure$locale; // Paper // CloudPlane - parsing moved up - this.requestedViewDistance = clientOptions.viewDistance(); - this.chatVisibility = clientOptions.chatVisibility(); - this.canChatColor = clientOptions.chatColors(); diff --git a/src/main/java/net/minecraft/world/entity/Display.java b/src/main/java/net/minecraft/world/entity/Display.java index 2ecd3ed5b36475125c6f63af2612011fc8fba8a5..1cb2532bad5b30366a743000318bcbafb23e9e87 100644 --- a/src/main/java/net/minecraft/world/entity/Display.java @@ -104,7 +90,7 @@ index 2ecd3ed5b36475125c6f63af2612011fc8fba8a5..1cb2532bad5b30366a743000318bcbaf public static final EntityDataAccessor DATA_BACKGROUND_COLOR_ID = SynchedEntityData.defineId(Display.TextDisplay.class, EntityDataSerializers.INT); private static final EntityDataAccessor DATA_TEXT_OPACITY_ID = SynchedEntityData.defineId(Display.TextDisplay.class, EntityDataSerializers.BYTE); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0aab277908d1b885916fb2276dc3aa3f332d51cf..65e0700570970862d24224d68ba9444e70a49f76 100644 +index 734e792451d878aba40f287bd21203a176366b01..8487cfe34a72d1750f0abc4a76f859d3fcb9a49d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -357,7 +357,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S