diff --git a/patches/server/0001-Build-changes.patch b/patches/server/0001-Build-changes.patch index bb649f6e..fe0f6eb1 100644 --- a/patches/server/0001-Build-changes.patch +++ b/patches/server/0001-Build-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build changes diff --git a/build.gradle.kts b/build.gradle.kts -index 57f2c414dbfe127c193002fbc8eeb22e94e9cb55..9d013901f963ff06cddbacd431921b78650a4ed0 100644 +index ee49dd4f80ebdfc65cbf860e62d3c80796c8af2c..e4fca5f18722d38f0f0715c27b77908a2c4063d4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -65,20 +65,36 @@ index 57f2c414dbfe127c193002fbc8eeb22e94e9cb55..9d013901f963ff06cddbacd431921b78 standardInput = System.`in` workingDir = rootProject.layout.projectDirectory diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 4b002e8b75d117b726b0de274a76d3596fce015b..a2e9688135f75a58d2eb3dd26222f67289d243e0 100644 +index 4b002e8b75d117b726b0de274a76d3596fce015b..9ce4d3d96d2d5fbde1f0af599209c6c55038fb58 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -593,7 +593,7 @@ public class Metrics { +@@ -593,7 +593,8 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { - Metrics metrics = new Metrics("Paper", serverUUID, logFailedRequests, Bukkit.getLogger()); -+ Metrics metrics = new Metrics("Leaves", serverUUID, logFailedRequests, Bukkit.getLogger()); // Leaves - we have our own bstats page ++ // Leaves start - we have our own bstats page ++ Metrics metrics = new Metrics("Leaves", serverUUID, logFailedRequests, Bukkit.getLogger()); metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); -@@ -603,15 +603,16 @@ public class Metrics { +@@ -601,17 +602,21 @@ public class Metrics { + return minecraftVersion; + })); ++ metrics.addCustomChart(new Metrics.SimplePie("leaves_version", () -> { ++ String serverVersion = Bukkit.getVersion(); ++ if (!serverVersion.startsWith("null")) { ++ String gitHash = serverVersion.substring("git-Leaves-".length()).split("[-\\s]")[0].replaceAll("\"", ""); ++ return "git-Leaves-" + Bukkit.getMinecraftVersion() + "-" + gitHash; ++ } ++ return "unknown"; ++ })); ++ ++ if (top.leavesmc.leaves.LeavesConfig.bstatsPrivacyMode) { ++ return; ++ } ++ metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : "offline")); - final String paperVersion; @@ -90,20 +106,10 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..a2e9688135f75a58d2eb3dd26222f672 - paperVersion = "unknown"; - } - metrics.addCustomChart(new Metrics.SimplePie("paper_version", () -> paperVersion)); -+ // Leaves start - we have our own bstats page -+ metrics.addCustomChart(new Metrics.SimplePie("leaves_version", () -> { -+ String serverVersion = Bukkit.getVersion(); -+ if (!serverVersion.startsWith("null")) { -+ String gitHash = serverVersion.substring("git-Leaves-".length()).split("[-\\s]")[0].replaceAll("\"", ""); -+ return "git-Leaves-" + Bukkit.getMinecraftVersion() + "-" + gitHash; -+ } -+ return "unknown"; -+ })); -+ // Leaves end - we have our own bstats page metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); -@@ -643,41 +644,8 @@ public class Metrics { +@@ -643,41 +648,8 @@ public class Metrics { return map; })); @@ -140,7 +146,7 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..a2e9688135f75a58d2eb3dd26222f672 - - return map; - })); -+ // Leaves - remove legacy_plugins ++ // Leaves end - we have our own bstats page } - } @@ -159,6 +165,24 @@ index 3238cbcba567b1242c77e41f6b6f19a8d157fb4e..670f25370554c3f8c40d2fcc4f5a31d7 } public SystemReport fillSystemReport(SystemReport details) { +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 9f422cbeaa52b3e6a0a27af4f8ad4ddb7808483f..09344819e270716d17a59669be2887256a3a6983 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -217,11 +217,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); + thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized + io.papermc.paper.command.PaperCommands.registerCommands(this); +- com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); + com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now + io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider + // Paper end + ++ com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Leaves - down ++ + this.setPvpAllowed(dedicatedserverproperties.pvp); + this.setFlightAllowed(dedicatedserverproperties.allowFlight); + this.setMotd(dedicatedserverproperties.motd); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index a05c1bc8874ef5e380544a6a344c848e37da49c4..22402d237f036be3dcbaea3a63718e615766981c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/patches/server/0004-Leaves-Server-Config-And-Command.patch b/patches/server/0004-Leaves-Server-Config-And-Command.patch index 77e574ff..c4d74110 100644 --- a/patches/server/0004-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0004-Leaves-Server-Config-And-Command.patch @@ -31,10 +31,10 @@ index 670f25370554c3f8c40d2fcc4f5a31d7a372f452..18b10f1d1d62e1184a562ef52e1625b4 org.spigotmc.WatchdogThread.hasStarted = true; // Paper Arrays.fill( recentTps, 20 ); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 9f422cbeaa52b3e6a0a27af4f8ad4ddb7808483f..3e3e11d4207172d6c24895cef6c7b5a0b09352ee 100644 +index 09344819e270716d17a59669be2887256a3a6983..27638ebb110f46f7e3d0255e3078ebb586863a30 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -221,6 +221,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -220,6 +220,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end @@ -42,8 +42,8 @@ index 9f422cbeaa52b3e6a0a27af4f8ad4ddb7808483f..3e3e11d4207172d6c24895cef6c7b5a0 + top.leavesmc.leaves.LeavesConfig.init((java.io.File) options.valueOf("leaves-settings")); // Leaves - Server Config + top.leavesmc.leaves.LeavesConfig.registerCommands(); // Leaves - Server Command - this.setPvpAllowed(dedicatedserverproperties.pvp); - this.setFlightAllowed(dedicatedserverproperties.allowFlight); + com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Leaves - down + diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java index f39ab10c5b0b8d86b579a5b683491204c51db70b..0462f03a5aaa47522451aa7732691597ded906f9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java @@ -128,10 +128,10 @@ index 35d2da9d91dcdd89de7c0f4af028fd182376ea8d..d73482fb1e71fe2951e96ae0593de268 .withRequiredArg() diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..74c28538d3a998b208808649e3841e3838777e80 +index 0000000000000000000000000000000000000000..a90123a1aa0ea1703cee1ffb0f2677a43b32bcc4 --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -@@ -0,0 +1,956 @@ +@@ -0,0 +1,961 @@ +package top.leavesmc.leaves; + +import com.destroystokyo.paper.util.SneakyThrow; @@ -913,6 +913,11 @@ index 0000000000000000000000000000000000000000..74c28538d3a998b208808649e3841e38 + zeroTickPlants = getBoolean("settings.modify.zero-tick-plants", zeroTickPlants); + } + ++ public static boolean bstatsPrivacyMode = false; ++ private static void bstatsPrivacyMode() { ++ bstatsPrivacyMode = getBoolean("settings.misc.bstats-privacy-mode", bstatsPrivacyMode); ++ } ++ + public static final class WorldConfig { + + public final String worldName; diff --git a/patches/server/0016-No-chat-sign.patch b/patches/server/0016-No-chat-sign.patch index 4d6227b2..e44fa2f9 100644 --- a/patches/server/0016-No-chat-sign.patch +++ b/patches/server/0016-No-chat-sign.patch @@ -110,10 +110,10 @@ index 9d6db4a378036559efab91c8b7dcf2a6b0c2cce6..2c349dc502ce275a8215766933f4855f } } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 3e3e11d4207172d6c24895cef6c7b5a0b09352ee..9e374eb89e28a5406784a38ec146ee31ab825c77 100644 +index 27638ebb110f46f7e3d0255e3078ebb586863a30..9abc92d8c98c1075ebc74e9dc4290b887913cc29 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -642,7 +642,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -643,7 +643,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface public boolean enforceSecureProfile() { DedicatedServerProperties dedicatedserverproperties = this.getProperties(); @@ -123,7 +123,7 @@ index 3e3e11d4207172d6c24895cef6c7b5a0b09352ee..9e374eb89e28a5406784a38ec146ee31 protected boolean convertOldUsers() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2a609e43370e68943c580083f7f7d8c9b0972955..2aeda591a182896f50edff099b042357f1347a39 100644 +index 316740b2ba4c85828f544249c8cdd6fa1b525d3f..3dc5b2f10702ca675fa947b96c341ebb20097118 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2145,10 +2145,27 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic