Files
Purpur/patches/server/0281-config-for-startup-commands.patch
granny 20e182a936 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@730882f Chunk System and Starlight WIP
PaperMC/Paper@512fd08 Update Gradle Wrapper to v8.8
PaperMC/Paper@097284d Bump tiny-remapper to 0.10.3
PaperMC/Paper@ee9b820 Update more optimization patches
PaperMC/Paper@5d834b1 rebuild patches
PaperMC/Paper@4bc15f1 Updated Upstream (Bukkit/CraftBukkit)
PaperMC/Paper@0b6701d Revert DamageSource#getCausingEntity to vanilla
PaperMC/Paper@5bd7f4e Update AbstractArrow item method implementations for 1.20.6 (#10885)
PaperMC/Paper@fb511c6 Fix Player#sendBlockState (#10855)
PaperMC/Paper@b420038 Fix ItemMeta#removeEnchantments (#10886)
PaperMC/Paper@a835ad1 Merge remote-tracking branch 'origin/dev/1.21' into dev/1.21
PaperMC/Paper@04dad71 Improve enchantWithLevels logic
PaperMC/Paper@0008fa1 Add back more optimization patches
PaperMC/Paper@56b5b7d Fix max chunk status checks
PaperMC/Paper@c1aefee correctly change enchantment registry to a 'delayed' version
PaperMC/Paper@d41636f Add back RecipeIterator fixes patch (#10887)
PaperMC/Paper@7df4725 Configurable damage tick when blocking with shield (#10877)
PaperMC/Paper@3555a77 Properly forward DispenseEvent #getItem to saddle
PaperMC/Paper@e339ec2 Deprecate BlockData#getDestroySpeed for removal
PaperMC/Paper@b090c65 Remove unnecessary changes from chunk status fix
PaperMC/Paper@5e7cd07 add some generated typed/tag keys
PaperMC/Paper@5a5412c Owen fixing stuff!!!
PaperMC/Paper@7240d9d Restore functionality to sand dupe setting
2024-06-15 23:01:19 -07:00

49 lines
2.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: granny <granny@purpurmc.org>
Date: Sun, 5 May 2024 02:27:52 -0700
Subject: [PATCH] config for startup commands
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 59938afbf2d3add16b6a7f0acdba81806054bbbb..bc58ad858d7753cc2b992e9f18ed717cbd3e5989 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1165,6 +1165,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// Paper end - Add onboarding message for initial server start
+ // Purpur start
+ 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);
+ ((DedicatedServer) this).handleConsoleInput(startupCommand, this.createCommandSourceStack());
+ }
+ }
+ // Purpur end
+
while (this.running) {
long i;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index a6681c9e0ba0544bf1fd80d73be7f22f4fed1157..fd4081662aa71d508b2f1bc1dbd70b1b28687848 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -572,4 +572,16 @@ public class PurpurConfig {
private static void registerMinecraftDebugCommands() {
registerMinecraftDebugCommands = getBoolean("settings.register-minecraft-debug-commands", registerMinecraftDebugCommands);
}
+
+ public static List<String> startupCommands = new ArrayList<>();
+ private static void startupCommands() {
+ startupCommands.clear();
+ getList("settings.startup-commands", new ArrayList<String>()).forEach(line -> {
+ String command = line.toString();
+ if (command.startsWith("/")) {
+ command = command.substring(1);
+ }
+ startupCommands.add(command);
+ });
+ }
}