diff --git a/patches/server/0002-Divine-Configuration.patch b/patches/server/0002-Divine-Configuration.patch index 6e6fded..dd1e90e 100644 --- a/patches/server/0002-Divine-Configuration.patch +++ b/patches/server/0002-Divine-Configuration.patch @@ -347,7 +347,7 @@ index 043a48d8c90e2e008b06fb5a643378a0fa948aaa..3f29a112c781790577d2857aee18c66f 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 4779fd92a88c3d485ab3282ab63158f0894f7896..6d64f75c4996cb4ee22876c7822d03da7af0918b 100644 +index c37b1fb81e6e8a8af5d17420892ee930b31ca019..3d58fdb3bd2d359c032c5e781ca393a485ce494f 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; @@ -376,7 +376,7 @@ index 4779fd92a88c3d485ab3282ab63158f0894f7896..6d64f75c4996cb4ee22876c7822d03da 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 2b9dab43a072206a6980bdfbf4f02e7a398758f7..070a5ff6e16aa9f316489f7a1b812d84da2f6a60 100644 +index 300779d8efa27be355206ce0f71d9015de72d30c..9e110e463944a710c20cfcfbc236c058fef5738e 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 2b9dab43a072206a6980bdfbf4f02e7a398758f7..070a5ff6e16aa9f316489f7a1b812d84 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -3081,6 +3085,13 @@ public final class CraftServer implements Server { +@@ -3079,6 +3083,13 @@ public final class CraftServer implements Server { } // Purpur end diff --git a/patches/server/0005-Add-missing-purpur-config-options.patch b/patches/server/0005-Add-missing-purpur-config-options.patch index b29b932..cc21c95 100644 --- a/patches/server/0005-Add-missing-purpur-config-options.patch +++ b/patches/server/0005-Add-missing-purpur-config-options.patch @@ -33,7 +33,7 @@ index c783ce59ea766e6c46a3313628b961f27e01ee8b..4f6b6967f7f632752fcc4faac47dca51 protected Brain.Provider brainProvider() { return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES); 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 cd9129bb5049c13f08c58b8581d511b59a5bb1b5..e681d81d257a797b1663bec895b7f487d10d4603 100644 +index fb50a3f3665cca4bb2e586fbd73c580a5d691f69..264bbd782e503d75e0b3d1c087e875b75ad22490 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 @@ -97,6 +97,18 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -112,7 +112,7 @@ index 14135dac80dec4224715e21cef6556d22e569026..e0e1a29abef0415f0e1a2a65dc15e9c7 protected PathNavigation createNavigation(Level world) { return new WaterBoundPathNavigation(this, world); diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index dcb10e2ea1e0c7d0479adae5bc2ff57ece172aad..b6754b9cdf3924aa5b89473282009e5341e51a1f 100644 +index 5e7d76dcdc170b809ab82f6e2259c9b4d3d741be..459ea45bcd23ea55da6e561216eb664f97cacfa5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -118,6 +118,18 @@ public class Sniffer extends Animal { @@ -135,7 +135,7 @@ index dcb10e2ea1e0c7d0479adae5bc2ff57ece172aad..b6754b9cdf3924aa5b89473282009e53 @Override protected void defineSynchedData() { diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index 22263f219ce9e9f014abb76c43297c528acb36eb..34a8334f7716783b86348901c76c3a84d180f2d0 100644 +index bf7ef72a7d92db8f11789a69583270644de0dac7..1bcdee570baf1499d660d019cf03b66dd4d05195 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java @@ -149,6 +149,23 @@ public class Warden extends Monster implements VibrationSystem { @@ -215,7 +215,7 @@ index 7d24b3177c41661bbd35d51e7e33dedc2fc69d2c..987f6fcf7b5e4f9144ecee865e19d135 org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dab252cbadffbcdf19bacc0b378d671b29393e9c..68277bfdb02d81cb2d1367c01a3a18dd271cc42c 100644 +index a78173ac1a8a71048bd6dbad84c0163e51cd150f..6d98a94b0a3eab30914c5df2def4e092f1c7921f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1180,7 +1180,17 @@ public class PurpurWorldConfig { @@ -304,7 +304,7 @@ index dab252cbadffbcdf19bacc0b378d671b29393e9c..68277bfdb02d81cb2d1367c01a3a18dd tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable); tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater); tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable); -@@ -2987,7 +3033,17 @@ public class PurpurWorldConfig { +@@ -2989,7 +3035,17 @@ public class PurpurWorldConfig { public boolean wardenRidable = false; public boolean wardenRidableInWater = true; public boolean wardenControllable = true; diff --git a/patches/server/0007-Fix-entity-serialization.patch b/patches/server/0007-Fix-entity-serialization.patch index 0fc0eef..5324092 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 e3322c3263280a8e206af7a84db3518ef0916439..9a9e4b4adbcd1eaed32a9610cfab3e8d71c0833b 100644 +index a83a6cd64345ff0d14e4dfad01566d8dc86c8416..fb2e589c1e7affbb9dfe07ccc5b80f7c96c8fce5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2342,15 +2342,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2339,15 +2339,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } @@ -25,7 +25,7 @@ index e3322c3263280a8e206af7a84db3518ef0916439..9a9e4b4adbcd1eaed32a9610cfab3e8d return this.isPassenger() ? false : this.saveAsPassenger(nbt); } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 2331190c476a2bfe3797aa61a4a792a9cc42ff59..0a713160ff0a0708c5bc4d578d265dbf7922dc07 100644 +index dd9ae7cc51386550ec2c30698b55babd87615a9b..be100b5008015c97e13278b942f584fd7b6a5cd4 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -508,8 +508,13 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0019-Fix-MC-2025.patch b/patches/server/0019-Fix-MC-2025.patch index 4cf97fa..f6f8877 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 9a9e4b4adbcd1eaed32a9610cfab3e8d71c0833b..9c3918791b89816d6096d782558d5e92f833efec 100644 +index fb2e589c1e7affbb9dfe07ccc5b80f7c96c8fce5..819505f651f86d32f279a7a4f2b7d4642959187e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2505,6 +2505,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2502,6 +2502,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Purpur.FireImmune", immuneToFire); } // Purpur end @@ -28,7 +28,7 @@ index 9a9e4b4adbcd1eaed32a9610cfab3e8d71c0833b..9c3918791b89816d6096d782558d5e92 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2582,6 +2593,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2579,6 +2590,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.reapplyPosition(); } diff --git a/patches/server/0028-Implement-Linear-region-format.patch b/patches/server/0028-Implement-Linear-region-format.patch index f119b3b..4e4c0db 100644 --- a/patches/server/0028-Implement-Linear-region-format.patch +++ b/patches/server/0028-Implement-Linear-region-format.patch @@ -19,35 +19,6 @@ index 6964b6235bed4455b85aa69cef0049a769c5daad..771ac26bd2ad64ad2861881d6cb223c8 implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion 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 -+++ b/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java -@@ -1,10 +1,9 @@ - package com.destroystokyo.paper.io; - - import com.mojang.logging.LogUtils; -+import gq.bxteam.divinemc.region.AbstractRegionFile; - import net.minecraft.nbt.CompoundTag; - import net.minecraft.server.level.ServerLevel; --import net.minecraft.world.level.ChunkPos; --import net.minecraft.world.level.chunk.storage.RegionFile; - import org.slf4j.Logger; - - import java.io.IOException; -@@ -314,8 +313,10 @@ public final class PaperFileIOThread extends QueueExecutorThread { - public abstract void writeData(final int x, final int z, final CompoundTag compound) throws IOException; - public abstract CompoundTag readData(final int x, final int z) throws IOException; - -- public abstract T computeForRegionFile(final int chunkX, final int chunkZ, final Function function); -- public abstract T computeForRegionFileIfLoaded(final int chunkX, final int chunkZ, final Function function); -+ // DivineMC start - Implement Linear region -+ public abstract T computeForRegionFile(final int chunkX, final int chunkZ, final Function function); -+ public abstract T computeForRegionFileIfLoaded(final int chunkX, final int chunkZ, final Function function); -+ // DivineMC end - - public static final class InProgressWrite { - public long writeCounter; diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java index 11dc1af9f8d8ce8c0a855d14a35077f5482ef0e8..def6f834d32b97e1065b17657e73d020a873bd14 100644 --- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java @@ -583,7 +554,7 @@ index 0000000000000000000000000000000000000000..73468daa328a330e432fc2be3721a5c5 + } +} diff --git a/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java b/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java -index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b2dd7d485 100644 +index 2934f0cf0ef09c84739312b00186c2ef0019a165..4dc416b921ed4730054775e6c2acddbc0b38f0ae 100644 --- a/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java +++ b/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java @@ -7,6 +7,7 @@ import ca.spottedleaf.concurrentutil.executor.standard.PrioritisedQueueExecutorT @@ -594,7 +565,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b import io.papermc.paper.util.CoordinateUtils; import io.papermc.paper.util.TickThread; import it.unimi.dsi.fastutil.HashCommon; -@@ -811,7 +812,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { +@@ -816,7 +817,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { final ChunkDataController taskController) { final ChunkPos chunkPos = new ChunkPos(chunkX, chunkZ); if (intendingToBlock) { @@ -603,7 +574,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b if (file == null) { // null if no regionfile exists return Boolean.FALSE; } -@@ -824,7 +825,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { +@@ -829,7 +830,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { return Boolean.FALSE; } // else: it either exists or is not known, fall back to checking the loaded region file @@ -612,7 +583,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b if (file == null) { // null if not loaded // not sure at this point, let the I/O thread figure it out return Boolean.TRUE; -@@ -1126,9 +1127,9 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { +@@ -1131,9 +1132,9 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { return this.getCache().doesRegionFileNotExistNoIO(new ChunkPos(chunkX, chunkZ)); } @@ -624,7 +595,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b synchronized (cache) { try { regionFile = cache.getRegionFile(new ChunkPos(chunkX, chunkZ), existingOnly, true); -@@ -1141,19 +1142,19 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { +@@ -1146,19 +1147,19 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { return function.apply(regionFile); } finally { if (regionFile != null) { @@ -648,7 +619,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..2b3c6d11421bb0f5131eeaae362ee44b } } -@@ -1161,7 +1162,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { +@@ -1166,7 +1167,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { return function.apply(regionFile); } finally { if (regionFile != null) { @@ -706,7 +677,7 @@ index 9017907c0ec67a37a506f09b7e4499cef7885279..281c810237603e667ad0345a3c93e735 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 09a290feb90751f3630fd23346c2cc8900fc841a..d7d2f876fb8d2aa2cd24e586f688d5110ffb938b 100644 +index 0dc5b32fbd3b3d9bb1189f46aab32057f30b18d1..01e20bdc992f40cea05ff45462acdb29376df6f7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -884,7 +884,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop