123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package me.km.api;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import javax.annotation.Nullable;
- import me.km.KajetansMod;
- import me.km.permissions.Permissions;
- import net.minecraft.command.CommandBase;
- import net.minecraft.command.CommandException;
- import net.minecraft.command.ICommandSender;
- import net.minecraft.server.MinecraftServer;
- import net.minecraft.util.math.BlockPos;
- public abstract class ModuleCommand extends CommandBase
- {
- private final Module m;
- private final String name;
- private String usage;
- private String description;
- private Permissions perm;
- private List<String> aliases;
-
- public ModuleCommand(String name, Module m)
- {
- this.name = name;
- this.m = m;
- this.usage = "";
- this.perm = null;
- this.aliases = Collections.<String>emptyList();
- }
- @Override
- public List<String> getAliases()
- {
- return aliases;
- }
-
- public void addAlias(String s)
- {
- if(aliases.isEmpty())
- {
- aliases = new ArrayList<>();
- }
- aliases.add(s);
- }
- public Module getModule()
- {
- return m;
- }
-
- @Override
- public String getName()
- {
- return name;
- }
-
- public void setUsage(String s)
- {
- usage = s;
- }
-
- @Override
- public String getUsage(ICommandSender sender)
- {
- return usage;
- }
-
- public void setDescription(String s)
- {
- description = s;
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public void setPermission(Permissions perm)
- {
- this.perm = perm;
- }
-
- public Permissions getPermission()
- {
- return perm;
- }
-
- public abstract boolean execute(ICommandSender cs, String[] arg);
-
- @Override
- public void execute(MinecraftServer server, ICommandSender cs, String[] args) throws CommandException
- {
- try
- {
- if(!execute(cs, args))
- {
- m.send(cs, this.getUsage(cs));
- }
- }
- catch(Exception ex)
- {
- ex.printStackTrace();
- if(KajetansMod.singlePlayer)
- {
- m.send(cs, "Dieser Command sollte nicht im SinglePlayer benutzt werden.");
- }
- }
- }
- @Override
- public boolean checkPermission(MinecraftServer server, ICommandSender cs)
- {
- return KajetansMod.perms.has(cs, perm);
- }
-
- @Override
- public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos)
- {
- return getListOfStringsMatchingLastWord(args, server.getOnlinePlayerNames());
- }
- }
|