ModuleCommand.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package me.km.api;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import me.km.KajetansMod;
  6. import me.km.permissions.Permissions;
  7. import net.minecraft.command.CommandBase;
  8. import net.minecraft.command.CommandException;
  9. import net.minecraft.command.ICommandSender;
  10. import net.minecraft.server.MinecraftServer;
  11. public abstract class ModuleCommand extends CommandBase
  12. {
  13. private final Module m;
  14. private final String name;
  15. private String usage;
  16. private String description;
  17. private Permissions perm;
  18. private List<String> aliases;
  19. public ModuleCommand(String name, Module m)
  20. {
  21. this.name = name;
  22. this.m = m;
  23. this.usage = "";
  24. this.perm = null;
  25. this.aliases = Collections.<String>emptyList();
  26. }
  27. @Override
  28. public List<String> getAliases()
  29. {
  30. return aliases;
  31. }
  32. public void addAlias(String s)
  33. {
  34. if(aliases.isEmpty())
  35. {
  36. aliases = new ArrayList<>();
  37. }
  38. aliases.add(s);
  39. }
  40. public Module getModule()
  41. {
  42. return m;
  43. }
  44. @Override
  45. public String getName()
  46. {
  47. return name;
  48. }
  49. public void setUsage(String s)
  50. {
  51. usage = s;
  52. }
  53. @Override
  54. public String getUsage(ICommandSender sender)
  55. {
  56. return usage;
  57. }
  58. public void setDescription(String s)
  59. {
  60. description = s;
  61. }
  62. public String getDescription()
  63. {
  64. return description;
  65. }
  66. public void setPermission(Permissions perm)
  67. {
  68. this.perm = perm;
  69. }
  70. public Permissions getPermission()
  71. {
  72. return perm;
  73. }
  74. public abstract boolean execute(ICommandSender cs, String[] arg);
  75. @Override
  76. public void execute(MinecraftServer server, ICommandSender cs, String[] args) throws CommandException
  77. {
  78. if(!execute(cs, args))
  79. {
  80. m.send(cs, this.getUsage(cs));
  81. }
  82. }
  83. @Override
  84. public boolean checkPermission(MinecraftServer server, ICommandSender cs)
  85. {
  86. return KajetansMod.perms.has(cs, perm);
  87. }
  88. }