diff --git a/divinemc-server/minecraft-patches/features/0002-Configuration.patch b/divinemc-server/minecraft-patches/features/0002-Configuration.patch index 8ce8048..298d176 100644 --- a/divinemc-server/minecraft-patches/features/0002-Configuration.patch +++ b/divinemc-server/minecraft-patches/features/0002-Configuration.patch @@ -5,20 +5,15 @@ Subject: [PATCH] Configuration diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 670553243d26e2faab8a21f099a846d4d1df7927..9a36ad8112cc4a4d5c4fefcd3b4bf3c48d9d40ee 100644 +index 670553243d26e2faab8a21f099a846d4d1df7927..329aeeafd51aee4da289b70ff68cdfe5401cc91a 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -193,6 +193,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -193,6 +193,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface } org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur end - Purpur config files + // DivineMC start - Configuration -+ try { -+ org.bxteam.divinemc.config.DivineConfig.init((java.io.File) options.valueOf("divinemc-settings")); -+ } catch (Exception e) { -+ DedicatedServer.LOGGER.error("Unable to load DivineMC configuration", e); -+ return false; -+ } ++ org.bxteam.divinemc.config.DivineConfig.init((java.io.File) options.valueOf("divinemc-settings")); + org.bxteam.divinemc.command.DivineCommands.registerCommands(this); + // DivineMC end - Configuration com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now diff --git a/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch b/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch index ca48538..160c8d5 100644 --- a/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch +++ b/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch @@ -1067,10 +1067,10 @@ index b10cb4a73df58a5fe64e88868733ba41616f59e4..9f9cbe6056f8a4eeca64c40872d7403b + // DivineMC end - Completely remove Mojang profiler } diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 9a36ad8112cc4a4d5c4fefcd3b4bf3c48d9d40ee..7aefb6a81d5f7f5431f3d67a096a93b036bbbd1d 100644 +index 329aeeafd51aee4da289b70ff68cdfe5401cc91a..653988aed936761385f245c520cc9521351664bf 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -795,12 +795,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -790,12 +790,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface return this.settings.getProperties().serverResourcePackInfo; } @@ -5015,7 +5015,7 @@ index fa06ecacc27f619853c8db76d909ab4ba75dc529..345d4b80bd4383e0fb66d744d87bc8ef // Paper start - Add mobcaps commands diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java -index 1d3b16d3f60a394fe69e10ef1bb6052bb937070a..d0c4d63320fb5f58c43b38ebc333e9a7be487a5d 100644 +index b80924fbe054b00fe5117df896358e330f41e993..1669c21534a453c9cf16b992df7a6bf276dea887 100644 --- a/net/minecraft/world/level/ServerExplosion.java +++ b/net/minecraft/world/level/ServerExplosion.java @@ -13,8 +13,6 @@ import net.minecraft.Util; @@ -5039,7 +5039,7 @@ index 1d3b16d3f60a394fe69e10ef1bb6052bb937070a..d0c4d63320fb5f58c43b38ebc333e9a7 if (this.fire) { diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index 7425e8d6b352718f80e1e741329e28c5da80fcce..d11373d6a88f7b3baaf0e04d4f6e0d3837e2ba3b 100644 +index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..b88254fb3c12b99684c6ede1ae8a6671ffbe9ad6 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -24,8 +24,6 @@ import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData; diff --git a/divinemc-server/minecraft-patches/features/0010-Pufferfish-SIMD-support.patch b/divinemc-server/minecraft-patches/features/0010-Pufferfish-SIMD-support.patch index a849a7e..ef6ab18 100644 --- a/divinemc-server/minecraft-patches/features/0010-Pufferfish-SIMD-support.patch +++ b/divinemc-server/minecraft-patches/features/0010-Pufferfish-SIMD-support.patch @@ -7,10 +7,10 @@ Original license: GPL v3 Original project: https://github.com/pufferfish-gg/Pufferfish diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 7aefb6a81d5f7f5431f3d67a096a93b036bbbd1d..7ac82a49e3c64d1a41a2870c5cf9900812329a57 100644 +index 653988aed936761385f245c520cc9521351664bf..f963be0d96a54a9077d2d66e9abe73ba8484d653 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -204,6 +204,26 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -199,6 +199,26 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface // DivineMC end - Configuration com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now diff --git a/divinemc-server/minecraft-patches/features/0064-Implement-NoChatReports.patch b/divinemc-server/minecraft-patches/features/0064-Implement-NoChatReports.patch index 8b8f786..f5a2a51 100644 --- a/divinemc-server/minecraft-patches/features/0064-Implement-NoChatReports.patch +++ b/divinemc-server/minecraft-patches/features/0064-Implement-NoChatReports.patch @@ -206,10 +206,10 @@ index a491be4250de3199c3e1aa9e5482b568692bd2f5..c88826db76c28c536e6c36c5592d69c1 private static final String PREFIX = "data:image/png;base64,"; public static final Codec CODEC = Codec.STRING.comapFlatMap(string -> { diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 7ac82a49e3c64d1a41a2870c5cf9900812329a57..978934f81ba023d7565d2e66c51f6ca249510702 100644 +index f963be0d96a54a9077d2d66e9abe73ba8484d653..efe1e50af314c4b8f6b30c7eb0a8dd14aec327a9 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -629,6 +629,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -624,6 +624,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @Override public boolean enforceSecureProfile() { diff --git a/divinemc-server/minecraft-patches/features/0078-SparklyPaper-Parallel-world-ticking.patch b/divinemc-server/minecraft-patches/features/0078-SparklyPaper-Parallel-world-ticking.patch index ae69f2c..d40fc8e 100644 --- a/divinemc-server/minecraft-patches/features/0078-SparklyPaper-Parallel-world-ticking.patch +++ b/divinemc-server/minecraft-patches/features/0078-SparklyPaper-Parallel-world-ticking.patch @@ -333,10 +333,10 @@ index 10e5469df1800bcdfb3f8cb4045ee25a4bafc58c..8efed0ffdc906b6c1ba054831e481f53 } } else if (this.visible.remove(advancementHolder)) { diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 978934f81ba023d7565d2e66c51f6ca249510702..13d85eb366a070bfd6723088412f51af07892362 100644 +index efe1e50af314c4b8f6b30c7eb0a8dd14aec327a9..41900b602d763fdd1f393e29ef6c54ae2694d7bd 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -224,6 +224,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -219,6 +219,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface } // DivineMC end - Pufferfish SIMD @@ -1343,7 +1343,7 @@ index d23f255de9208f42125fa358a9e8194c984fe4d3..92e9bc9ba577474ca1108b8d06157395 // CraftBukkit end } diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index cf2ff202103fde0607e4dacef1a976c36b7840ef..8ea69a995c8572ed14cacaef0f53596c748dace6 100644 +index 6f25be39103cd0bb26bc365d9599b9846c6fe133..24f13e2b0b694ff4dd01aeea876ef874f1828304 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -365,6 +365,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p diff --git a/divinemc-server/minecraft-patches/features/0086-Disable-offline-warn-if-using-proxy.patch b/divinemc-server/minecraft-patches/features/0086-Disable-offline-warn-if-using-proxy.patch index 51445a0..f603014 100644 --- a/divinemc-server/minecraft-patches/features/0086-Disable-offline-warn-if-using-proxy.patch +++ b/divinemc-server/minecraft-patches/features/0086-Disable-offline-warn-if-using-proxy.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable offline warn if using proxy diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java -index 13d85eb366a070bfd6723088412f51af07892362..bdb37afb8f30d19726c4775e1eaa8c1dabacd3a7 100644 +index 41900b602d763fdd1f393e29ef6c54ae2694d7bd..0e66aa733dd9b0c23ef01bb38243a0cab13d9ecf 100644 --- a/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java -@@ -311,7 +311,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -306,7 +306,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord"; String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/"; // Paper end - Add Velocity IP Forwarding Support diff --git a/divinemc-server/paper-patches/features/0002-Configuration.patch b/divinemc-server/paper-patches/features/0002-Configuration.patch index f067d73..2060404 100644 --- a/divinemc-server/paper-patches/features/0002-Configuration.patch +++ b/divinemc-server/paper-patches/features/0002-Configuration.patch @@ -5,24 +5,18 @@ Subject: [PATCH] Configuration diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d9d158ef36225345eec871fd6e6fb19db08d4c21..ade084fb8f6f9290104677d6fc10a72816715746 100644 +index 592e8a4c04ef5acda9fdfd1405d8ff4952396ada..c8c7fa0304e8eaf0d444fc0c9a36c00bb27ccc71 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1060,6 +1060,13 @@ public final class CraftServer implements Server { +@@ -1060,6 +1060,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); org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur - Purpur config files -+ // DivineMC start - Configuration -+ try { -+ org.bxteam.divinemc.config.DivineConfig.init((File) console.options.valueOf("divinemc-settings")); -+ } catch (IOException e) { -+ this.logger.log(Level.WARNING, "Failed to load DivineMC configuration, " + e.getMessage()); -+ } -+ // DivineMC end - Configuration ++ org.bxteam.divinemc.config.DivineConfig.init((File) console.options.valueOf("divinemc-settings")); // DivineMC - Configuration for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1076,6 +1083,13 @@ public final class CraftServer implements Server { +@@ -1076,6 +1077,13 @@ public final class CraftServer implements Server { } world.spigotConfig.init(); // Spigot world.purpurConfig.init(); // Purpur - Purpur config files diff --git a/divinemc-server/paper-patches/features/0016-Implement-Secure-Seed.patch b/divinemc-server/paper-patches/features/0016-Implement-Secure-Seed.patch index 88d4cbc..61ae37b 100644 --- a/divinemc-server/paper-patches/features/0016-Implement-Secure-Seed.patch +++ b/divinemc-server/paper-patches/features/0016-Implement-Secure-Seed.patch @@ -25,10 +25,10 @@ index 400e632208d133a3f49fc7f14bceb48a1026769b..a1c7ba0fdb505d09407cca94e890dedd @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 414fdc6ca7a2979124a7fbf529bff60f993c005a..19430a22687e6bf2887222ecdda2fdda9539c0f8 100644 +index 172fd6f12793565fda9a240ef045775a80e264cb..bf549edfc876f1d831b550864b3f54278bcdd20c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1352,7 +1352,11 @@ public final class CraftServer implements Server { +@@ -1346,7 +1346,11 @@ public final class CraftServer implements Server { registryAccess = levelDataAndDimensions.dimensions().dimensionsRegistryAccess(); } else { LevelSettings levelSettings; diff --git a/divinemc-server/src/main/java/org/bxteam/divinemc/command/subcommands/ReloadCommand.java b/divinemc-server/src/main/java/org/bxteam/divinemc/command/subcommands/ReloadCommand.java index 2df61ad..711aa1a 100644 --- a/divinemc-server/src/main/java/org/bxteam/divinemc/command/subcommands/ReloadCommand.java +++ b/divinemc-server/src/main/java/org/bxteam/divinemc/command/subcommands/ReloadCommand.java @@ -39,11 +39,7 @@ public final class ReloadCommand extends DivineSubCommandPermission { MinecraftServer server = ((CraftServer) sender.getServer()).getServer(); - try { - DivineConfig.init((File) server.options.valueOf("divinemc-settings")); - } catch (IOException e) { - MinecraftServer.LOGGER.error("Failed to reload DivineMC config", e); - } + DivineConfig.init((File) server.options.valueOf("divinemc-settings")); for (ServerLevel level : server.getAllLevels()) { try { diff --git a/divinemc-server/src/main/java/org/bxteam/divinemc/config/DivineConfig.java b/divinemc-server/src/main/java/org/bxteam/divinemc/config/DivineConfig.java index 5c19909..afb9d07 100644 --- a/divinemc-server/src/main/java/org/bxteam/divinemc/config/DivineConfig.java +++ b/divinemc-server/src/main/java/org/bxteam/divinemc/config/DivineConfig.java @@ -59,21 +59,30 @@ public class DivineConfig { return convertToBukkit(config); } - public static void init(File configFile) throws IOException { - DivineConfig.configFile = configFile; - if (configFile.exists()) { - try { - config.load(configFile); - } catch (InvalidConfigurationException e) { - throw new IOException(e); - } - } + public static void init(File configFile) { + try { + long begin = System.nanoTime(); + LOGGER.info("Loading config..."); - getInt("version", CONFIG_VERSION); - config.options().header(HEADER); + DivineConfig.configFile = configFile; + if (configFile.exists()) { + try { + config.load(configFile); + } catch (InvalidConfigurationException e) { + throw new IOException(e); + } + } - readConfig(DivineConfig.class, null); - checkExperimentalFeatures(); + getInt("version", CONFIG_VERSION); + config.options().header(HEADER); + + readConfig(DivineConfig.class, null); + checkExperimentalFeatures(); + + LOGGER.info("Config loaded in {}ms", (System.nanoTime() - begin) / 1_000_000); + } catch (Exception e) { + LOGGER.error("Failed to load config", e); + } } static void readConfig(Class clazz, Object instance) throws IOException {