diff --git a/bukkit/site/lab0x13/scrow/commands/bukkit/ScrowCommands.java b/bukkit/site/lab0x13/scrow/commands/bukkit/ScrowCommands.java index b439ee5..723c758 100644 --- a/bukkit/site/lab0x13/scrow/commands/bukkit/ScrowCommands.java +++ b/bukkit/site/lab0x13/scrow/commands/bukkit/ScrowCommands.java @@ -40,7 +40,6 @@ public class ScrowCommands> implements IScrowC new BukkitScrowCommand<>(commandHandler, commandContextFactory, rootLiteral)); } - @Override public @Nullable RootLiteral getRootLiteral(String name) { return rootLiterals.stream() .filter(literal -> literal.names().contains(name)) diff --git a/common/site/lab0x13/scrow/commands/IScrowCommands.java b/common/site/lab0x13/scrow/commands/IScrowCommands.java index 9a65f2c..751ac87 100644 --- a/common/site/lab0x13/scrow/commands/IScrowCommands.java +++ b/common/site/lab0x13/scrow/commands/IScrowCommands.java @@ -1,12 +1,9 @@ package site.lab0x13.scrow.commands; -import org.jetbrains.annotations.Nullable; import site.lab0x13.scrow.commands.model.CommandContext; import site.lab0x13.scrow.commands.model.literal.RootLiteral; public interface IScrowCommands> { void register(RootLiteral rootLiteral); - - @Nullable RootLiteral getRootLiteral(String name); } diff --git a/velocity/site/lab0x13/scrow/commands/velocity/ScrowCommands.java b/velocity/site/lab0x13/scrow/commands/velocity/ScrowCommands.java new file mode 100644 index 0000000..cab4ee3 --- /dev/null +++ b/velocity/site/lab0x13/scrow/commands/velocity/ScrowCommands.java @@ -0,0 +1,25 @@ +import com.velocitypowered.api.proxy.ProxyServer; +import site.lab0x13.scrow.commands.CommandHandler; +import site.lab0x13.scrow.commands.IScrowCommands; +import site.lab0x13.scrow.commands.model.literal.RootLiteral; + +public class ScrowCommands> implements IScrowCommands { + + private final ProxyServer server; + private final CommandContextFactory commandContextFactory; + private final CommandHandler commandHandler; + + public ScrowCommands(ProxyServer server, CommandContextFactory commandContextFactory, CommandHandler commandHandler) { + this.server = server; + this.commandContextFactory = commandContextFactory; + this.commandHandler = commandHandler; + } + + public void register(RootLiteral rootNode) { + var cm = server.getCommandManager(); + var meta = cm.metaBuilder(rootNode.names().getFirst()) + .aliases(rootNode.names().stream().skip(1).toArray(String[]::new)) + .build(); + cm.register(meta, new VelocityCommand<>(commandHandler, commandContextFactory, rootNode)); + } +}