MmoeditCommand.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.gmail.nossr50.commands.general;
  2. import org.bukkit.ChatColor;
  3. import org.bukkit.OfflinePlayer;
  4. import org.bukkit.command.Command;
  5. import org.bukkit.command.CommandExecutor;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8. import com.gmail.nossr50.mcMMO;
  9. import com.gmail.nossr50.commands.CommandHelper;
  10. import com.gmail.nossr50.datatypes.PlayerProfile;
  11. import com.gmail.nossr50.datatypes.SkillType;
  12. import com.gmail.nossr50.locale.LocaleLoader;
  13. import com.gmail.nossr50.util.Misc;
  14. import com.gmail.nossr50.util.Skills;
  15. import com.gmail.nossr50.util.Users;
  16. public class MmoeditCommand implements CommandExecutor {
  17. private final mcMMO plugin;
  18. public MmoeditCommand (mcMMO plugin) {
  19. this.plugin = plugin;
  20. }
  21. @Override
  22. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  23. OfflinePlayer modifiedPlayer;
  24. PlayerProfile orofile;
  25. int newValue;
  26. SkillType skill;
  27. String skillName;
  28. String usage = ChatColor.RED + "Proper usage is /mmoedit [player] <skill> <level>"; //TODO: Needs more locale.
  29. if (CommandHelper.noCommandPermissions(sender, "mcmmo.tools.mmoedit")) {
  30. return true;
  31. }
  32. switch (args.length) {
  33. case 2:
  34. if (sender instanceof Player) {
  35. if (!Skills.isSkill(args[0])) {
  36. sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
  37. return true;
  38. }
  39. if (Misc.isInt(args[1])) {
  40. modifiedPlayer = (Player) sender;
  41. newValue = Integer.valueOf(args[1]);
  42. skill = Skills.getSkillType(args[0]);
  43. orofile = Users.getProfile(modifiedPlayer);
  44. if (skill.equals(SkillType.ALL)) {
  45. skillName = "all skills";
  46. }
  47. else {
  48. skillName = Misc.getCapitalized(skill.toString());
  49. }
  50. orofile.modifySkill(skill, newValue);
  51. sender.sendMessage(ChatColor.GREEN + "Your level in " + skillName + " was set to " + newValue + "!"); //TODO: Needs more locale.
  52. }
  53. else {
  54. sender.sendMessage(usage);
  55. }
  56. }
  57. else {
  58. sender.sendMessage(usage);
  59. }
  60. return true;
  61. case 3:
  62. if (!Misc.isInt(args[2])) {
  63. sender.sendMessage(usage);
  64. return true;
  65. }
  66. skill = Skills.getSkillType(args[1]);
  67. if (skill == null) {
  68. sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
  69. return true;
  70. }
  71. if (skill.equals(SkillType.ALL)) {
  72. skillName = "all skills";
  73. }
  74. else {
  75. skillName = Misc.getCapitalized(skill.toString());
  76. }
  77. newValue = Integer.valueOf(args[2]);
  78. modifiedPlayer = plugin.getServer().getOfflinePlayer(args[0]);
  79. if (modifiedPlayer.isOnline()) {
  80. orofile = Users.getProfile(modifiedPlayer);
  81. ((Player) modifiedPlayer).sendMessage(ChatColor.GREEN + "Your level in " + skillName + " was set to " + newValue + "!"); //TODO: Needs more locale.
  82. sender.sendMessage(ChatColor.RED + skillName + " has been modified for " + args[0] + "."); //TODO: Use locale
  83. orofile.modifySkill(skill, newValue);
  84. orofile.save();
  85. return true;
  86. }
  87. else {
  88. orofile = new PlayerProfile(modifiedPlayer, false); //Temporary Profile
  89. if (!orofile.isLoaded()) {
  90. sender.sendMessage(LocaleLoader.getString("Commands.DoesNotExist"));
  91. return true;
  92. }
  93. }
  94. default:
  95. sender.sendMessage(usage);
  96. return true;
  97. }
  98. }
  99. }