mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-03 23:07:40 +01:00
Add command line option to load extra plugin jars not in the plugins folder
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
This commit is contained in:
parent
770ee3eebd
commit
e92663406b
@ -461,6 +461,35 @@ public final class CraftServer implements Server {
|
||||
io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.INSTANCE.enter(io.papermc.paper.plugin.entrypoint.Entrypoint.PLUGIN); // Paper - replace implementation
|
||||
}
|
||||
|
||||
// Paper start
|
||||
@Override
|
||||
public File getPluginsFolder() {
|
||||
return this.console.getPluginsFolder();
|
||||
}
|
||||
|
||||
private List<File> extraPluginJars() {
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<File> jars = (List<File>) this.console.options.valuesOf("add-plugin");
|
||||
final List<File> list = new ArrayList<>();
|
||||
for (final File file : jars) {
|
||||
if (!file.exists()) {
|
||||
net.minecraft.server.MinecraftServer.LOGGER.warn("File '{}' specified through 'add-plugin' argument does not exist, cannot load a plugin from it!", file.getAbsolutePath());
|
||||
continue;
|
||||
}
|
||||
if (!file.isFile()) {
|
||||
net.minecraft.server.MinecraftServer.LOGGER.warn("File '{}' specified through 'add-plugin' argument is not a file, cannot load a plugin from it!", file.getAbsolutePath());
|
||||
continue;
|
||||
}
|
||||
if (!file.getName().endsWith(".jar")) {
|
||||
net.minecraft.server.MinecraftServer.LOGGER.warn("File '{}' specified through 'add-plugin' argument is not a jar file, cannot load a plugin from it!", file.getAbsolutePath());
|
||||
continue;
|
||||
}
|
||||
list.add(file);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
// Paper end
|
||||
|
||||
public void enablePlugins(PluginLoadOrder type) {
|
||||
if (type == PluginLoadOrder.STARTUP) {
|
||||
this.helpMap.clear();
|
||||
|
@ -160,6 +160,12 @@ public class Main {
|
||||
.ofType(File.class)
|
||||
.defaultsTo(new File("paper.yml"))
|
||||
.describedAs("Yml file");
|
||||
|
||||
acceptsAll(asList("add-plugin", "add-extra-plugin-jar"), "Specify paths to extra plugin jars to be loaded in addition to those in the plugins folder. This argument can be specified multiple times, once for each extra plugin jar path.")
|
||||
.withRequiredArg()
|
||||
.ofType(File.class)
|
||||
.defaultsTo(new File[] {})
|
||||
.describedAs("Jar file");
|
||||
// Paper end
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user