CommandRegistrationHelper.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. package com.gmail.nossr50.commands;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.bukkit.command.PluginCommand;
  5. import com.gmail.nossr50.mcMMO;
  6. import com.gmail.nossr50.commands.admin.AddlevelsCommand;
  7. import com.gmail.nossr50.commands.admin.AddxpCommand;
  8. import com.gmail.nossr50.commands.admin.McgodCommand;
  9. import com.gmail.nossr50.commands.admin.McrefreshCommand;
  10. import com.gmail.nossr50.commands.admin.MmoeditCommand;
  11. import com.gmail.nossr50.commands.admin.SkillresetCommand;
  12. import com.gmail.nossr50.commands.admin.XprateCommand;
  13. import com.gmail.nossr50.commands.player.InspectCommand;
  14. import com.gmail.nossr50.commands.player.McabilityCommand;
  15. import com.gmail.nossr50.commands.player.McmmoCommand;
  16. import com.gmail.nossr50.commands.player.McrankCommand;
  17. import com.gmail.nossr50.commands.player.McstatsCommand;
  18. import com.gmail.nossr50.commands.player.MctopCommand;
  19. import com.gmail.nossr50.config.Config;
  20. import com.gmail.nossr50.database.commands.McpurgeCommand;
  21. import com.gmail.nossr50.locale.LocaleLoader;
  22. import com.gmail.nossr50.skills.acrobatics.AcrobaticsCommand;
  23. import com.gmail.nossr50.skills.archery.ArcheryCommand;
  24. import com.gmail.nossr50.skills.axes.AxesCommand;
  25. import com.gmail.nossr50.skills.excavation.ExcavationCommand;
  26. import com.gmail.nossr50.skills.fishing.FishingCommand;
  27. import com.gmail.nossr50.skills.herbalism.HerbalismCommand;
  28. import com.gmail.nossr50.skills.mining.MiningCommand;
  29. import com.gmail.nossr50.skills.repair.RepairCommand;
  30. import com.gmail.nossr50.skills.smelting.SmeltingCommand;
  31. import com.gmail.nossr50.skills.swords.SwordsCommand;
  32. import com.gmail.nossr50.skills.taming.TamingCommand;
  33. import com.gmail.nossr50.skills.unarmed.UnarmedCommand;
  34. import com.gmail.nossr50.skills.utilities.SkillType;
  35. import com.gmail.nossr50.skills.woodcutting.WoodcuttingCommand;
  36. import com.gmail.nossr50.util.Misc;
  37. public final class CommandRegistrationHelper {
  38. private CommandRegistrationHelper() {};
  39. private static String permissionsMessage = LocaleLoader.getString("mcMMO.NoPermission");
  40. public static void registerSkillCommands() {
  41. for (SkillType skill : SkillType.values()) {
  42. String commandName = skill.toString().toLowerCase();
  43. String localizedName = LocaleLoader.getString(Misc.getCapitalized(commandName) + ".SkillName").toLowerCase();
  44. List<String> aliasList = new ArrayList<String>();
  45. aliasList.add(localizedName);
  46. PluginCommand command;
  47. // Make us play nice with Essentials
  48. if (skill == SkillType.REPAIR && mcMMO.p.getServer().getPluginManager().isPluginEnabled("Essentials")) {
  49. command = mcMMO.p.getCommand("mcrepair");
  50. }
  51. else {
  52. command = mcMMO.p.getCommand(commandName);
  53. }
  54. command.setAliases(aliasList);
  55. command.setDescription(LocaleLoader.getString("Commands.Description.Skill", Misc.getCapitalized(localizedName)));
  56. command.setPermission("mcmmo.commands." + commandName);
  57. command.setPermissionMessage(permissionsMessage);
  58. command.setUsage(LocaleLoader.getString("Commands.Usage.0", localizedName));
  59. command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.2", localizedName, "?", "[" + LocaleLoader.getString("Commands.Usage.Page") + "]"));
  60. switch (skill) {
  61. case ACROBATICS:
  62. command.setExecutor(new AcrobaticsCommand());
  63. break;
  64. case ARCHERY:
  65. command.setExecutor(new ArcheryCommand());
  66. break;
  67. case AXES:
  68. command.setExecutor(new AxesCommand());
  69. break;
  70. case EXCAVATION:
  71. command.setExecutor(new ExcavationCommand());
  72. break;
  73. case FISHING:
  74. command.setExecutor(new FishingCommand());
  75. break;
  76. case HERBALISM:
  77. command.setExecutor(new HerbalismCommand());
  78. break;
  79. case MINING:
  80. command.setExecutor(new MiningCommand());
  81. break;
  82. case REPAIR:
  83. command.setExecutor(new RepairCommand());
  84. break;
  85. case SMELTING:
  86. command.setExecutor(new SmeltingCommand());
  87. break;
  88. case SWORDS:
  89. command.setExecutor(new SwordsCommand());
  90. break;
  91. case TAMING:
  92. command.setExecutor(new TamingCommand());
  93. break;
  94. case UNARMED:
  95. command.setExecutor(new UnarmedCommand());
  96. break;
  97. case WOODCUTTING:
  98. command.setExecutor(new WoodcuttingCommand());
  99. break;
  100. default:
  101. break;
  102. }
  103. }
  104. }
  105. public static void registerAddlevelsCommand() {
  106. PluginCommand command = mcMMO.p.getCommand("addlevels");
  107. command.setDescription(LocaleLoader.getString("Commands.Description.addlevels"));
  108. command.setPermission("mcmmo.commands.addlevels;mcmmo.commands.addlevels.others");
  109. command.setPermissionMessage(permissionsMessage);
  110. command.setUsage(LocaleLoader.getString("Commands.Usage.3", "addlevels", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]", "<" + LocaleLoader.getString("Commands.Usage.Skill") + ">", "<" + LocaleLoader.getString("Commands.Usage.Level") + ">"));
  111. command.setExecutor(new AddlevelsCommand());
  112. }
  113. public static void registerAddxpCommand() {
  114. PluginCommand command = mcMMO.p.getCommand("addxp");
  115. command.setDescription(LocaleLoader.getString("Commands.Description.addxp"));
  116. command.setPermission("mcmmo.commands.addxp;mcmmo.commands.addxp.others");
  117. command.setPermissionMessage(permissionsMessage);
  118. command.setUsage(LocaleLoader.getString("Commands.Usage.3", "addxp", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]", "<" + LocaleLoader.getString("Commands.Usage.Skill") + ">", "<" + LocaleLoader.getString("Commands.Usage.XP") + ">"));
  119. command.setExecutor(new AddxpCommand());
  120. }
  121. public static void registerMcgodCommand() {
  122. PluginCommand command = mcMMO.p.getCommand("mcgod");
  123. command.setDescription(LocaleLoader.getString("Commands.Description.mcgod"));
  124. command.setPermission("mcmmo.commands.mcgod;mcmmo.commands.mcgod.others");
  125. command.setPermissionMessage(permissionsMessage);
  126. command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcgod", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"));
  127. command.setExecutor(new McgodCommand());
  128. }
  129. public static void registerMcrefreshCommand() {
  130. PluginCommand command = mcMMO.p.getCommand("mcrefresh");
  131. command.setDescription(LocaleLoader.getString("Commands.Description.mcrefresh"));
  132. command.setPermission("mcmmo.commands.mcrefresh;mcmmo.commands.mcrefresh.others");
  133. command.setPermissionMessage(permissionsMessage);
  134. command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcrefresh", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"));
  135. command.setExecutor(new McrefreshCommand());
  136. }
  137. public static void registerMmoeditCommand() {
  138. PluginCommand command = mcMMO.p.getCommand("mmoedit");
  139. command.setDescription(LocaleLoader.getString("Commands.Description.mmoedit"));
  140. command.setPermission("mcmmo.commands.mmoedit;mcmmo.commands.mmoedit.others");
  141. command.setPermissionMessage(permissionsMessage);
  142. command.setUsage(LocaleLoader.getString("Commands.Usage.3", "mmoedit", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]", "<" + LocaleLoader.getString("Commands.Usage.Skill") + ">", "<" + LocaleLoader.getString("Commands.Usage.Level") + ">"));
  143. command.setExecutor(new MmoeditCommand());
  144. }
  145. public static void registerSkillresetCommand() {
  146. PluginCommand command = mcMMO.p.getCommand("skillreset");
  147. command.setDescription(LocaleLoader.getString("Commands.Description.skillreset"));
  148. command.setPermission("mcmmo.commands.skillreset;mcmmo.commands.skillreset.others"); // Only need the main ones, not the individual skill ones
  149. command.setPermissionMessage(permissionsMessage);
  150. command.setUsage(LocaleLoader.getString("Commands.Usage.2", "skillreset", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]", "<" + LocaleLoader.getString("Commands.Usage.Skill") + ">"));
  151. command.setExecutor(new SkillresetCommand());
  152. }
  153. public static void registerXprateCommand() {
  154. List<String> aliasList = new ArrayList<String>();
  155. aliasList.add("mcxprate");
  156. PluginCommand command = mcMMO.p.getCommand("xprate");
  157. command.setDescription(LocaleLoader.getString("Commands.Description.xprate"));
  158. command.setPermission("mcmmo.commands.xprate;mcmmo.commands.xprate.reset;mcmmo.commands.xprate.set");
  159. command.setPermissionMessage(permissionsMessage);
  160. command.setUsage(LocaleLoader.getString("Commands.Usage.2", "xprate", "<" + LocaleLoader.getString("Commands.Usage.Rate") + ">", "[" + LocaleLoader.getString("Commands.Usage.True") + "|" + LocaleLoader.getString("Commands.Usage.False")+ "]"));
  161. command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "xprate", "reset"));
  162. command.setAliases(aliasList);
  163. command.setExecutor(new XprateCommand());
  164. }
  165. public static void registerInspectCommand() {
  166. PluginCommand command = mcMMO.p.getCommand("inspect");
  167. command.setDescription(LocaleLoader.getString("Commands.Description.inspect"));
  168. command.setPermission("mcmmo.commands.inspect;mcmmo.commands.inspect.far;mcmmo.commands.inspect.offline");
  169. command.setPermissionMessage(permissionsMessage);
  170. command.setUsage(LocaleLoader.getString("Commands.Usage.1", "inspect", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">"));
  171. command.setExecutor(new InspectCommand());
  172. }
  173. public static void registerMcabilityCommand() {
  174. PluginCommand command = mcMMO.p.getCommand("mcability");
  175. command.setDescription(LocaleLoader.getString("Commands.Description.mcability"));
  176. command.setPermission("mcmmo.commands.mcability;mcmmo.commands.mcability.others");
  177. command.setPermissionMessage(permissionsMessage);
  178. command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcability", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"));
  179. command.setExecutor(new McabilityCommand());
  180. }
  181. public static void registerMcmmoCommand() {
  182. List<String> aliasList = new ArrayList<String>();
  183. aliasList.add("mcinfo");
  184. PluginCommand command = mcMMO.p.getCommand("mcmmo");
  185. command.setDescription(LocaleLoader.getString("Commands.Description.mcmmo"));
  186. command.setPermission("mcmmo.commands.mcmmo");
  187. command.setPermissionMessage(permissionsMessage);
  188. command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mcmmo"));
  189. command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.1", "mcmmo", "?"));
  190. command.setExecutor(new McmmoCommand());
  191. }
  192. public static void registerMcrankCommand() {
  193. PluginCommand command = mcMMO.p.getCommand("mcrank");
  194. command.setDescription(LocaleLoader.getString("Commands.Description.mcrank"));
  195. command.setPermission("mcmmo.commands.mcrank;mcmmo.commands.mcrank.others;mcmmo.commands.mcrank.others.far;mcmmo.commands.mcrank.others.offline");
  196. command.setPermissionMessage(permissionsMessage);
  197. command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mcrank", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]"));
  198. command.setExecutor(new McrankCommand());
  199. }
  200. public static void registerMcstatsCommand() {
  201. List<String> aliasList = new ArrayList<String>();
  202. aliasList.add("stats");
  203. PluginCommand command = mcMMO.p.getCommand("mcstats");
  204. command.setDescription(LocaleLoader.getString("Commands.Description.mcstats"));
  205. command.setPermission("mcmmo.commands.mcstats");
  206. command.setPermissionMessage(permissionsMessage);
  207. command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mcstats"));
  208. command.setAliases(aliasList);
  209. command.setExecutor(new McstatsCommand());
  210. }
  211. public static void registerMctopCommand() {
  212. PluginCommand command = mcMMO.p.getCommand("mctop");
  213. command.setDescription(LocaleLoader.getString("Commands.Description.mctop"));
  214. command.setPermission("mcmmo.commands.mctop"); // Only need the main one, not the individual skill ones
  215. command.setPermissionMessage(permissionsMessage);
  216. command.setUsage(LocaleLoader.getString("Commands.Usage.2", "mctop", "[" + LocaleLoader.getString("Commands.Usage.Skill") + "]", "[" + LocaleLoader.getString("Commands.Usage.Page") + "]"));
  217. command.setExecutor(new MctopCommand());
  218. }
  219. public static void registerMcpurgeCommand() {
  220. PluginCommand command = mcMMO.p.getCommand("mcpurge");
  221. command.setDescription(LocaleLoader.getString("Commands.Description.mcpurge", Config.getInstance().getOldUsersCutoff()));
  222. command.setPermission("mcmmo.commands.mcpurge");
  223. command.setPermissionMessage(permissionsMessage);
  224. command.setUsage(LocaleLoader.getString("Commands.Usage.0", "mcpurge"));
  225. command.setExecutor(new McpurgeCommand());
  226. }
  227. }