SkillResetCommand.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.gmail.nossr50.commands.admin;
  2. import org.bukkit.OfflinePlayer;
  3. import org.bukkit.command.Command;
  4. import org.bukkit.command.CommandExecutor;
  5. import org.bukkit.command.CommandSender;
  6. import org.bukkit.entity.Player;
  7. import com.gmail.nossr50.mcMMO;
  8. import com.gmail.nossr50.commands.CommandHelper;
  9. import com.gmail.nossr50.datatypes.PlayerProfile;
  10. import com.gmail.nossr50.locale.LocaleLoader;
  11. import com.gmail.nossr50.skills.utilities.SkillTools;
  12. import com.gmail.nossr50.skills.utilities.SkillType;
  13. import com.gmail.nossr50.util.Misc;
  14. import com.gmail.nossr50.util.Users;
  15. public class SkillResetCommand implements CommandExecutor {
  16. @Override
  17. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  18. OfflinePlayer modifiedPlayer;
  19. PlayerProfile profile;
  20. SkillType skill;
  21. String usage = LocaleLoader.getString("Commands.Usage.2", "skillreset", "[" + LocaleLoader.getString("Commands.Usage.Player") + "]", "<" + LocaleLoader.getString("Commands.Usage.Skill") + ">");
  22. switch (args.length) {
  23. case 1:
  24. if (sender instanceof Player) {
  25. if (!SkillTools.isSkill(args[0])) {
  26. sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
  27. return true;
  28. }
  29. skill = SkillTools.getSkillType(args[0]);
  30. if (CommandHelper.noCommandPermissions((Player) sender, "mcmmo.commands.skillreset." + skill.toString().toLowerCase())) {
  31. return true;
  32. }
  33. modifiedPlayer = (Player) sender;
  34. profile = Users.getProfile(modifiedPlayer);
  35. profile.modifySkill(skill, 0);
  36. if (skill == SkillType.ALL) {
  37. sender.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
  38. }
  39. else {
  40. sender.sendMessage(LocaleLoader.getString("Commands.Reset.Single", Misc.getCapitalized(skill.toString())));
  41. }
  42. }
  43. else {
  44. sender.sendMessage(usage);
  45. }
  46. return true;
  47. case 2:
  48. modifiedPlayer = mcMMO.p.getServer().getOfflinePlayer(args[0]);
  49. profile = Users.getProfile(modifiedPlayer);
  50. // TODO:Not sure if we actually need a null check here
  51. if (profile == null || !profile.isLoaded()) {
  52. sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
  53. return true;
  54. }
  55. if (!SkillTools.isSkill(args[1])) {
  56. sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
  57. return true;
  58. }
  59. skill = SkillTools.getSkillType(args[1]);
  60. if (CommandHelper.noCommandPermissions(sender, "mcmmo.commands.skillreset.others." + skill.toString().toLowerCase())) {
  61. return true;
  62. }
  63. profile.modifySkill(skill, 0);
  64. if (modifiedPlayer.isOnline()) {
  65. if (skill == SkillType.ALL) {
  66. ((Player)modifiedPlayer).sendMessage(LocaleLoader.getString("Commands.Reset.All"));
  67. }
  68. else {
  69. ((Player)modifiedPlayer).sendMessage(LocaleLoader.getString("Commands.Reset.Single", Misc.getCapitalized(skill.toString())));
  70. }
  71. }
  72. sender.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.2", Misc.getCapitalized(skill.toString()), args[0]));
  73. return true;
  74. default:
  75. sender.sendMessage(usage);
  76. return true;
  77. }
  78. }
  79. }