package de.kentoj.kencommandapi; import de.kentoj.kencommandapi.api.CommandHandler; import de.kentoj.kencommandapi.api.literal.Literal; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; import java.util.Arrays; import java.util.stream.Stream; public class BukkitKenCommand extends Command { private final Literal rootNode; private final CommandHandler commandHandler; protected BukkitKenCommand( CommandHandler commandHandler, Literal rootLiteral ) { super(rootLiteral.getNames()[0]); this.commandHandler = commandHandler; this.rootNode = rootLiteral; this.setAliases(Arrays.asList(rootLiteral.getNames())); this.setPermission(rootLiteral.getPermission()); } @Override public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) { commandHandler.invoke(rootNode, sender, Stream.of(args) .filter(str -> !str.isEmpty())); return true; } }