diff --git a/headlessmc-api/src/main/java/me/earth/headlessmc/api/command/CopyContext.java b/headlessmc-api/src/main/java/me/earth/headlessmc/api/command/CopyContext.java new file mode 100644 index 00000000..2398271e --- /dev/null +++ b/headlessmc-api/src/main/java/me/earth/headlessmc/api/command/CopyContext.java @@ -0,0 +1,20 @@ +package me.earth.headlessmc.api.command; + +import me.earth.headlessmc.api.HeadlessMc; + +public class CopyContext extends CommandContextImpl { + public CopyContext(HeadlessMc ctx, boolean baseContext) { + super(ctx); + CommandContext before = baseContext ? ctx.getCommandLine().getBaseContext() : ctx.getCommandLine().getCommandContext(); + for (Command command : before) { + add(command); + } + } + + // TODO: actually we should always expose this + @Override + public void add(Command command) { + super.add(command); + } + +} diff --git a/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/command/PluginsCommand.java b/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/command/PluginsCommand.java index f9498094..9c085c61 100644 --- a/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/command/PluginsCommand.java +++ b/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/command/PluginsCommand.java @@ -18,6 +18,7 @@ public void execute(String line, String... args) throws CommandException { ctx.log(new Table() .withColumn("name", HasName::getName) .withColumn("description", HasDescription::getDescription) + .addAll(ctx.getPluginManager().getPlugins()) .build()); } diff --git a/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/plugin/PluginManager.java b/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/plugin/PluginManager.java index 5ff792ea..220b93c0 100644 --- a/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/plugin/PluginManager.java +++ b/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/plugin/PluginManager.java @@ -1,11 +1,13 @@ package me.earth.headlessmc.launcher.plugin; +import lombok.Getter; import me.earth.headlessmc.launcher.Launcher; import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; +@Getter public class PluginManager { private final List plugins = new ArrayList<>();