From e0db368062e7425ac3f74b450e204a3e1dec898b Mon Sep 17 00:00:00 2001 From: granny Date: Sun, 12 Jan 2025 18:07:25 -0800 Subject: [PATCH] config for startup commands --- .../0287-config-for-startup-commands.patch | 49 ------------------- .../server/MinecraftServer.java.patch | 17 +++++++ .../org/purpurmc/purpur/PurpurConfig.java | 12 +++++ 3 files changed, 29 insertions(+), 49 deletions(-) delete mode 100644 patches/server/0287-config-for-startup-commands.patch diff --git a/patches/server/0287-config-for-startup-commands.patch b/patches/server/0287-config-for-startup-commands.patch deleted file mode 100644 index a3c14ff56..000000000 --- a/patches/server/0287-config-for-startup-commands.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: granny -Date: Sun, 5 May 2024 02:27:52 -0700 -Subject: [PATCH] config for startup commands - - -diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 1dc4476ca1fc41030001d4d23ffff1b810a056cd..115069f2bce9b7742d8d3fbf181a47cacf8b0046 100644 ---- a/net/minecraft/server/MinecraftServer.java -+++ b/net/minecraft/server/MinecraftServer.java -@@ -1293,6 +1293,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop startupCommands = new ArrayList<>(); -+ private static void startupCommands() { -+ startupCommands.clear(); -+ getList("settings.startup-commands", new ArrayList()).forEach(line -> { -+ String command = line.toString(); -+ if (command.startsWith("/")) { -+ command = command.substring(1); -+ } -+ startupCommands.add(command); -+ }); -+ } - } diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch index 2e3d170bc..c4362fa13 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch @@ -60,6 +60,23 @@ public final RollingAverage tps1 = new RollingAverage(60); public final RollingAverage tps5 = new RollingAverage(60 * 5); public final RollingAverage tps15 = new RollingAverage(60 * 15); +@@ -1197,6 +_,16 @@ + } + // Paper end - Add onboarding message for initial server start + ++ // Purpur start - config for startup commands ++ if (!Boolean.getBoolean("Purpur.IReallyDontWantStartupCommands") && !org.purpurmc.purpur.PurpurConfig.startupCommands.isEmpty()) { ++ LOGGER.info("Purpur: Running startup commands specified in purpur.yml."); ++ for (final String startupCommand : org.purpurmc.purpur.PurpurConfig.startupCommands) { ++ LOGGER.info("Purpur: Running the following command: \"{}\"", startupCommand); ++ ((net.minecraft.server.dedicated.DedicatedServer) this).handleConsoleInput(startupCommand, this.createCommandSourceStack()); ++ } ++ } ++ // Purpur end - config for startup commands ++ + while (this.running) { + long l; + if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) { @@ -1221,14 +_,19 @@ if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) { final long diff = currentTime - tickSection; diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java index 82fb73279..3d2e2bb40 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -583,4 +583,16 @@ public class PurpurConfig { private static void registerMinecraftDebugCommands() { registerMinecraftDebugCommands = getBoolean("settings.register-minecraft-debug-commands", registerMinecraftDebugCommands); } + + public static List startupCommands = new ArrayList<>(); + private static void startupCommands() { + startupCommands.clear(); + getList("settings.startup-commands", new ArrayList()).forEach(line -> { + String command = line.toString(); + if (command.startsWith("/")) { + command = command.substring(1); + } + startupCommands.add(command); + }); + } }