mirror of https://github.com/PaperMC/Paper.git
Add required-plugins config option
This commit is contained in:
parent
6e31f385e3
commit
e7e286e115
|
@ -487,10 +487,10 @@ index 0000000000000000000000000000000000000000..522156e1b7578663c426fcaf7e47acb9
|
|||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..4a34a49f12b106976ba19436f96f74ebb068249c
|
||||
index 0000000000000000000000000000000000000000..c1fb2173ec35e754c6f85cb13f5ef4699cd2535e
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
@@ -0,0 +1,311 @@
|
||||
@@ -0,0 +1,310 @@
|
||||
+package io.papermc.paper.configuration;
|
||||
+
|
||||
+import co.aikar.timings.MinecraftTimings;
|
||||
|
@ -791,6 +791,7 @@ index 0000000000000000000000000000000000000000..4a34a49f12b106976ba19436f96f74eb
|
|||
+ public boolean useDimensionTypeForCustomSpawners = false;
|
||||
+ public boolean strictAdvancementDimensionCheck = false;
|
||||
+ public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT;
|
||||
+ public List<String> requiredPlugins = List.of();
|
||||
+ }
|
||||
+
|
||||
+ public BlockUpdates blockUpdates;
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Tamion <70228790+notTamion@users.noreply.github.com>
|
||||
Date: Sat, 25 Nov 2023 23:15:22 +0100
|
||||
Subject: [PATCH] Add required-plugins config option
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
|
||||
index 9c7552968b8c017c71a7a77557a66a03ed89f125..688812294909ea0cdaeb10aac88bc74287ed4294 100644
|
||||
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
|
||||
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
|
||||
@@ -210,6 +210,13 @@ class PaperPluginInstanceManager {
|
||||
if (!(plugin instanceof JavaPlugin javaPlugin)) {
|
||||
throw new IllegalArgumentException("Only expects java plugins.");
|
||||
}
|
||||
+ // Paper start
|
||||
+ if (!this.server.isStopping() && org.spigotmc.WatchdogThread.hasStarted && io.papermc.paper.configuration.GlobalConfiguration.get().misc.requiredPlugins.contains(plugin.getName())) {
|
||||
+ this.server.getLogger().severe("The required Plugin " + plugin.getName() + " got disabled. Stopping Server.");
|
||||
+ this.server.shutdown();
|
||||
+ return;
|
||||
+ }
|
||||
+ // Paper end
|
||||
if (!plugin.isEnabled()) {
|
||||
return;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 1c9742ad81f04052d2c3bc18c7636f45b2fc5160..beab25cd9ed84135547db62d52636d7ee5b83525 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -275,6 +275,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
// CraftBukkit end
|
||||
|
||||
// Paper start
|
||||
+ List<String> missingPlugins = new java.util.ArrayList<>(io.papermc.paper.configuration.GlobalConfiguration.get().misc.requiredPlugins);
|
||||
+ missingPlugins.removeAll(java.util.Arrays.stream(this.server.paperPluginManager.getPlugins()).filter(org.bukkit.plugin.Plugin::isEnabled).map(org.bukkit.plugin.Plugin::getName).toList());
|
||||
+ if(!missingPlugins.isEmpty()) {
|
||||
+ DedicatedServer.LOGGER.error("The following required Plugins aren't enabled: " + String.join(", ", missingPlugins) + ". Stopping Server.");
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
boolean usingProxy = org.spigotmc.SpigotConfig.bungee || io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled;
|
||||
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/";
|
Loading…
Reference in New Issue