SkillresetCommand.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.gmail.nossr50.commands.experience;
  2. import org.bukkit.command.Command;
  3. import org.bukkit.command.CommandSender;
  4. import com.gmail.nossr50.datatypes.player.PlayerProfile;
  5. import com.gmail.nossr50.datatypes.skills.SkillType;
  6. import com.gmail.nossr50.locale.LocaleLoader;
  7. import com.gmail.nossr50.util.Permissions;
  8. import com.gmail.nossr50.util.commands.CommandUtils;
  9. import com.gmail.nossr50.util.player.UserManager;
  10. import com.gmail.nossr50.util.skills.SkillUtils;
  11. public class SkillresetCommand extends ExperienceCommand {
  12. private CommandSender sender;
  13. private Command command;
  14. @Override
  15. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  16. switch (args.length) {
  17. case 1:
  18. if (CommandUtils.noConsoleUsage(sender)) {
  19. return true;
  20. }
  21. if (!Permissions.skillreset(sender)) {
  22. sender.sendMessage(command.getPermissionMessage());
  23. return true;
  24. }
  25. if (isInvalidSkill(sender, args[0])) {
  26. return true;
  27. }
  28. mcMMOPlayer = UserManager.getPlayer(sender.getName());
  29. player = mcMMOPlayer.getPlayer();
  30. profile = mcMMOPlayer.getProfile();
  31. this.command = command;
  32. this.sender = sender;
  33. editValues();
  34. return true;
  35. case 2:
  36. if (!Permissions.skillresetOthers(sender)) {
  37. sender.sendMessage(command.getPermissionMessage());
  38. return true;
  39. }
  40. if (isInvalidSkill(sender, args[1])) {
  41. return true;
  42. }
  43. mcMMOPlayer = UserManager.getPlayer(args[0]);
  44. // If the mcMMOPlayer doesn't exist, create a temporary profile and check if it's present in the database. If it's not, abort the process.
  45. if (mcMMOPlayer == null) {
  46. profile = new PlayerProfile(args[0], false);
  47. if (CommandUtils.unloadedProfile(sender, profile)) {
  48. return true;
  49. }
  50. this.command = command;
  51. this.sender = sender;
  52. editValues();
  53. profile.save(); // Since this is a temporary profile, we save it here.
  54. }
  55. else {
  56. profile = mcMMOPlayer.getProfile();
  57. editValues();
  58. }
  59. handleSenderMessage(sender, args[0]);
  60. return true;
  61. default:
  62. return false;
  63. }
  64. }
  65. @Override
  66. protected boolean permissionsCheckSelf(CommandSender sender) {
  67. // TODO Auto-generated method stub
  68. return false;
  69. }
  70. @Override
  71. protected boolean permissionsCheckOthers(CommandSender sender) {
  72. // TODO Auto-generated method stub
  73. return false;
  74. }
  75. @Override
  76. protected void handleCommand(SkillType skill) {
  77. if ((player.equals(sender) && !Permissions.skillreset(sender, skill)) || (!player.equals(sender) && !Permissions.skillresetOthers(sender, skill))) {
  78. sender.sendMessage(command.getPermissionMessage());
  79. return;
  80. }
  81. profile.modifySkill(skill, 0);
  82. }
  83. @Override
  84. protected void handlePlayerMessageAll() {
  85. player.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
  86. }
  87. @Override
  88. protected void handlePlayerMessageSkill() {
  89. player.sendMessage(LocaleLoader.getString("Commands.Reset.Single", SkillUtils.getSkillName(skill)));
  90. }
  91. }