diff --git a/patches/server/0001-Divine-Branding.patch b/patches/server/0001-Divine-Branding.patch index 4e2cd4e..2bbbb17 100644 --- a/patches/server/0001-Divine-Branding.patch +++ b/patches/server/0001-Divine-Branding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Divine Branding diff --git a/build.gradle.kts b/build.gradle.kts -index 790835a0c4889d17b4efd06cb463744973642a48..4c4a0b04a994bcbf0ddc183e54ad5f802a81a4cc 100644 +index 5b8a28969451b12c4fc66976afd052ffa5805932..7aeb4fa6a8342b81558c657120504848c5e32775 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,7 +14,7 @@ val alsoShade: Configuration by configurations.creating @@ -17,7 +17,7 @@ index 790835a0c4889d17b4efd06cb463744973642a48..4c4a0b04a994bcbf0ddc183e54ad5f80 implementation("io.papermc.paper:paper-mojangapi:${project.version}") { exclude("io.papermc.paper", "paper-api") } -@@ -93,7 +93,7 @@ tasks.jar { +@@ -92,7 +92,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -169,7 +169,7 @@ index 64e12201e164f4dc8070711605dcfcb6e56421f6..ad5c7d2f133834fd587ab0b8b5835313 servergui.runFinalizers(); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index aa04387019f2aef5e7e54a9654c05f832d508295..08808e9d98380792b4d4c944b7b1723a3efb346d 100644 +index fd754fc9ff313421d221eea8d21fbde98be24914..ddf481ef8e70a4441e33d26b8acb8f618096c017 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 diff --git a/patches/server/0002-Divine-Configuration.patch b/patches/server/0002-Divine-Configuration.patch index 1612127..77fe770 100644 --- a/patches/server/0002-Divine-Configuration.patch +++ b/patches/server/0002-Divine-Configuration.patch @@ -326,7 +326,7 @@ index 0000000000000000000000000000000000000000..5d16d2250bae9c982a0af9ad2580a635 +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index d21260dd1b7305949f063123b427dec1f5a00ae5..e64ac037eeeebd3b14d8652bdea7b05bbd85c7c3 100644 +index 7cc19060c24ad191b7dca779a18fbfbb65763189..eb301cf5e68914980829b1d3c72163ddf337958d 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -235,6 +235,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -347,7 +347,7 @@ index d21260dd1b7305949f063123b427dec1f5a00ae5..e64ac037eeeebd3b14d8652bdea7b05b this.setFlightAllowed(dedicatedserverproperties.allowFlight); this.setMotd(dedicatedserverproperties.motd); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2b5409e653be7d6b9c0529b512b2f7408b218011..1b318f6c281170cdaafd26a0bff4901e3a153b59 100644 +index b58402221840a9e72b30a31d884b0fb2d86883fd..bc0590fd38837cf6be67d56e5e00078ce0c6f11b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -15,6 +15,8 @@ import java.util.function.Consumer; @@ -369,14 +369,14 @@ index 2b5409e653be7d6b9c0529b512b2f7408b218011..1b318f6c281170cdaafd26a0bff4901e private org.spigotmc.TickLimiter entityLimiter; @@ -263,6 +266,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot - this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper + this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur + this.divinemcConfig = new DivineWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // DivineMC this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur this.generator = gen; 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 08808e9d98380792b4d4c944b7b1723a3efb346d..c5c5731a755fe635384aad24c3ac5152e5c8ae74 100644 +index ddf481ef8e70a4441e33d26b8acb8f618096c017..ce842043c0f69e4a090f0a170fcffa1f51e1895c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -14,6 +14,7 @@ import com.mojang.brigadier.tree.CommandNode; @@ -411,7 +411,7 @@ index 08808e9d98380792b4d4c944b7b1723a3efb346d..c5c5731a755fe635384aad24c3ac5152 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -3095,6 +3099,13 @@ public final class CraftServer implements Server { +@@ -3094,6 +3098,13 @@ public final class CraftServer implements Server { } // Purpur end @@ -426,7 +426,7 @@ index 08808e9d98380792b4d4c944b7b1723a3efb346d..c5c5731a755fe635384aad24c3ac5152 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index feed5a8042ef329e56fecd8096da08986dbd2032..13113730b2bc6a1d9ff7da278ee4b85372bdc1de 100644 +index c7f8f85ad6cb76413275ebe64385a3ec7051257e..3cf225840194eedeadc40f5b370ff51c7ea0c89a 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -188,6 +188,14 @@ public class Main { diff --git a/patches/server/0007-Fix-entity-serialization.patch b/patches/server/0007-Fix-entity-serialization.patch index 0990870..6c639d3 100644 --- a/patches/server/0007-Fix-entity-serialization.patch +++ b/patches/server/0007-Fix-entity-serialization.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix entity serialization diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 251b336c1915f173c975fd0c568dfb04182fc91b..174e0113d54d049b56316f4cba8250ba7df4d236 100644 +index 93e558e1cfcdee33abf6f1c57e4cf47c7f53f750..c83c3ceebe2c6fd0d6645a604a8e2a35e6ac3ac0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2340,15 +2340,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2342,15 +2342,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } diff --git a/patches/server/0016-Reduce-sensor-work.patch b/patches/server/0016-Reduce-sensor-work.patch index 988542e..1f54d7c 100644 --- a/patches/server/0016-Reduce-sensor-work.patch +++ b/patches/server/0016-Reduce-sensor-work.patch @@ -7,10 +7,10 @@ Original project: Bloom-host/Petal Link: https://github.com/Bloom-host/Petal diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1425a8321e3bc988a88ca45e3d3f0fcee18df58f..a824377c76e55dcb7440a6c851dc8df7f6a2e834 100644 +index 3b1c09f8afe1a008df4b75b605a796bfb1bf3899..2170ee480cd1498219d2c5d87de7d176524d31a1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1036,20 +1036,19 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1037,20 +1037,19 @@ public abstract class LivingEntity extends Entity implements Attackable { } if (entity != null) { diff --git a/patches/server/0019-Fix-MC-2025.patch b/patches/server/0019-Fix-MC-2025.patch index 1c44dfa..8531b62 100644 --- a/patches/server/0019-Fix-MC-2025.patch +++ b/patches/server/0019-Fix-MC-2025.patch @@ -7,10 +7,10 @@ Original post on Mojira: https://bugs.mojang.com/browse/MC-2025 Fix taken from Reddit: https://redd.it/8pgd4q diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 174e0113d54d049b56316f4cba8250ba7df4d236..29e040ff5c2d5c4022dd18d807b1b665e2acbe9c 100644 +index c83c3ceebe2c6fd0d6645a604a8e2a35e6ac3ac0..7213d7ad92f42bf8b35f388a6d56e80bcc4a0858 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2506,6 +2506,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2508,6 +2508,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Purpur.FireImmune", immuneToFire); } // Purpur end @@ -28,7 +28,7 @@ index 174e0113d54d049b56316f4cba8250ba7df4d236..29e040ff5c2d5c4022dd18d807b1b665 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2583,6 +2594,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2585,6 +2596,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.reapplyPosition(); } diff --git a/patches/server/0020-lithium-collections.gamerules.patch b/patches/server/0020-lithium-collections.gamerules.patch index d96b93b..06485a0 100644 --- a/patches/server/0020-lithium-collections.gamerules.patch +++ b/patches/server/0020-lithium-collections.gamerules.patch @@ -5,7 +5,7 @@ Subject: [PATCH] lithium: collections.gamerules diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 4f2fa47d094348bb8f86a86e808019ddba56e187..10c023cf56a86f5cc7a545a9e6056237b92c6ab6 100644 +index a9be16e53a9df34af3495048aa9af7b1a3efea4a..0c360ca01bec47c738ef80d74986599af70373da 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -27,6 +27,7 @@ import net.minecraft.network.protocol.game.ClientboundGameEventPacket; @@ -23,5 +23,5 @@ index 4f2fa47d094348bb8f86a86e808019ddba56e187..10c023cf56a86f5cc7a545a9e6056237 - this.rules = rules; + this.rules = new Object2ObjectOpenHashMap<>(rules); // DivineMC - lithium: collections.gamerules - // Paper start + // Paper start - Perf: Use array for gamerule storage int arraySize = rules.keySet().stream().mapToInt(key -> key.gameRuleIndex).max().orElse(-1) + 1; diff --git a/patches/server/0026-Do-not-process-chat-commands-before-player-has-joine.patch b/patches/server/0026-Do-not-process-chat-commands-before-player-has-joine.patch index ad568d2..a109c84 100644 --- a/patches/server/0026-Do-not-process-chat-commands-before-player-has-joine.patch +++ b/patches/server/0026-Do-not-process-chat-commands-before-player-has-joine.patch @@ -19,7 +19,7 @@ index fa7ee2b2778a26d0e466bdc05ade26a5ae0c17f4..11dc1af9f8d8ce8c0a855d14a35077f5 + } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 68d4ccd7ae5719e66fd3f14e5bfce4675eb73a17..8244d269fcd179b285e5e3a36bff8e58c3806577 100644 +index 0b37acd48517d28efec716b93c33da6aa97c54f2..e2e3d5a4285760eb8b931223677411a0bdf3aa14 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -6,6 +6,7 @@ import com.mojang.authlib.GameProfile; @@ -30,7 +30,7 @@ index 68d4ccd7ae5719e66fd3f14e5bfce4675eb73a17..8244d269fcd179b285e5e3a36bff8e58 import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry; import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -@@ -2342,6 +2343,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2344,6 +2345,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false)); return Optional.empty(); diff --git a/patches/server/0028-Implement-Linear-region-format.patch b/patches/server/0028-Implement-Linear-region-format.patch index a67eb9e..12ba478 100644 --- a/patches/server/0028-Implement-Linear-region-format.patch +++ b/patches/server/0028-Implement-Linear-region-format.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement Linear region format diff --git a/build.gradle.kts b/build.gradle.kts -index 4c4a0b04a994bcbf0ddc183e54ad5f802a81a4cc..c8307d1ef3a6490649c7ecefe28db9865c3567a2 100644 +index 7aeb4fa6a8342b81558c657120504848c5e32775..571e01cd7ed706593289427fe71e04d0182ac314 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,6 +36,10 @@ dependencies { @@ -17,8 +17,8 @@ index 4c4a0b04a994bcbf0ddc183e54ad5f802a81a4cc..c8307d1ef3a6490649c7ecefe28db986 + implementation("org.lz4:lz4-java:1.8.0") + // DivineMC end implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm:9.5") - implementation("org.ow2.asm:asm-commons:9.5") // Paper - ASM event executor generation + implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files diff --git a/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java b/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java index f2c27e0ac65be4b75c1d86ef6fd45fdb538d96ac..84ef82da3a18341c1f8bc463360e8ba031299da4 100644 --- a/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java @@ -706,7 +706,7 @@ index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..b48b7d538132ad3d51d373292e36a8a1 long expectedChunks = (long)regionFiles.length * (32L * 32L); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f69976dcba060027c67c2e1b49fa28d3f28f66f0..e10ef28420c755258f7fbe7935f8c8ab0fdcca50 100644 +index 6f94f01da0a2294f6fdc564653dde1fdbf508153..bc85de1adc8404278ac590872015137e8ac1667e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -887,7 +887,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Entity.class, new ServerLevel.EntityCallbacks(), entitypersistentstorage, this.entitySliceManager); // Paper // Paper - rewrite chunk system StructureTemplateManager structuretemplatemanager = minecraftserver.getStructureManager(); diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java -index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..3ddbded1a5f1dcb82e1309c3741bff09041c807c 100644 +index 47636aad5fa20d1c28d3520beb0729df9b30cf6c..33f22f2c9c80808109539fa595479dafab4a9f07 100644 --- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java +++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java @@ -8,6 +8,9 @@ import com.google.common.collect.UnmodifiableIterator; @@ -1446,7 +1446,7 @@ index 4aac1979cf57300825a999c876fcf24d3170e68e..b81636c1aa5b39e1696fdf30a7e2b270 this.factory = factory; this.fixerUpper = dataFixer; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f6c6cd92e1eff044abefa6ca74477d361f4434ec..e24498294f44877bcf8fc97cea9e3ca1a4f9200d 100644 +index ae01fa8872c138afbd2d3f2b036392c3f47845c1..e586e451a6836f02e06352e5410d0bcc66b1a682 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -5,7 +5,7 @@ import com.google.common.base.Predicates; diff --git a/patches/server/0029-Configurable-Chat-message-signatures.patch b/patches/server/0029-Configurable-Chat-message-signatures.patch index 4914cbb..4d38994 100644 --- a/patches/server/0029-Configurable-Chat-message-signatures.patch +++ b/patches/server/0029-Configurable-Chat-message-signatures.patch @@ -71,7 +71,7 @@ index c40979e2fa37acb2f3df493395f3ab6e185345d7..16250b44775b2ccd02e2112600c9f3ba public static record Favicon(byte[] iconBytes) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e64ac037eeeebd3b14d8652bdea7b05bbd85c7c3..7cf002599cf6a982dc616228eb7a9091c0e92875 100644 +index eb301cf5e68914980829b1d3c72163ddf337958d..65eee5a4c5dc2cb7175e3c95f08956d1d83d7c12 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -686,6 +686,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -81,9 +81,9 @@ index e64ac037eeeebd3b14d8652bdea7b05bbd85c7c3..7cf002599cf6a982dc616228eb7a9091 + if (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) return false; // DivineMC - Configurable Chat message signatures DedicatedServerProperties dedicatedserverproperties = this.getProperties(); - // Paper start - fix secure profile with proxy online mode + // Paper start - Add setting for proxy online mode status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 37a3ce5da2cb89675e0180c4ed937e5851cd002b..c73217929e9ae8264052ec4d6d46ac2c84c70725 100644 +index d5a5406284bf764c9f7a31a4ad85bbcda18f4df8..246f6688e94b8ebd1318e75f2f0b91111b044201 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2258,7 +2258,7 @@ public class ServerPlayer extends Player { @@ -157,7 +157,7 @@ index da499e0b21eba40d24d95047e3a9220567d4bae7..af52d6c7f18f0837f4ffce95a310ddee if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a52f0b7d76dc71d176d960fc4f67f0683127112e..39142f0619d20393e043eda61e6a82b0088a1c1e 100644 +index 92717b7aa7ac94a2b1d11b5ba46522057903f981..b313413463b2c5a65246ca5165e9932eb18285c7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1469,7 +1469,7 @@ public abstract class PlayerList {