package us.ajg0702.queue.commands; import com.google.common.collect.ImmutableList; import net.kyori.adventure.text.Component; import us.ajg0702.queue.api.commands.IBaseCommand; import us.ajg0702.queue.api.commands.ICommandSender; import us.ajg0702.queue.api.commands.ISubCommand; import us.ajg0702.utils.common.Messages; import java.util.ArrayList; import java.util.List; import java.util.Locale; public class BaseCommand implements IBaseCommand { @Override public String getName() { return null; } @Override public ImmutableList getAliases() { return null; } @SuppressWarnings("unused") @Override public ImmutableList getSubCommands() { return null; } @Override public String getPermission() { return null; } @Override public boolean showInTabComplete() { return true; } @Override public Messages getMessages() { return null; } @SuppressWarnings("unused") @Override public void addSubCommand(ISubCommand subCommand) { } @Override public void execute(ICommandSender sender, String[] args) { sender.sendMessage(Component.text("Unimplemented command")); } public boolean checkPermission(ICommandSender sender) { if(getPermission() != null && !sender.hasPermission(getPermission())) { sender.sendMessage(getMessages().getComponent("noperm")); return false; } return true; } @Override public List autoComplete(ICommandSender sender, String[] args) { return null; } public List filterCompletion(List in, String current) { List out = new ArrayList<>(in); out.removeIf(t -> !t.toLowerCase(Locale.ROOT).contains(current.toLowerCase(Locale.ROOT))); return out; } }