AddxpCommand.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.gmail.nossr50.commands.general;
  2. import org.bukkit.ChatColor;
  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.Users;
  8. import com.gmail.nossr50.m;
  9. import com.gmail.nossr50.mcMMO;
  10. import com.gmail.nossr50.commands.CommandHelper;
  11. import com.gmail.nossr50.datatypes.SkillType;
  12. import com.gmail.nossr50.skills.Skills;
  13. //TODO: Any way we can make this work for offline use?
  14. public class AddxpCommand implements CommandExecutor {
  15. private final mcMMO plugin;
  16. public AddxpCommand(mcMMO instance) {
  17. this.plugin = instance;
  18. }
  19. @Override
  20. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  21. Player modifiedPlayer;
  22. int xp;
  23. SkillType skill;
  24. String skillName;
  25. String usage = ChatColor.RED + "Proper usage is /addxp [player] <skill> <xp>"; //TODO: Needs more locale.
  26. if (CommandHelper.noCommandPermissions(sender, "mcmmo.tools.mmoedit")) {
  27. return true;
  28. }
  29. switch (args.length) {
  30. case 2:
  31. if (sender instanceof Player) {
  32. if (m.isInt(args[1]) && Skills.isSkill(args[0])) {
  33. modifiedPlayer = (Player) sender;
  34. xp = Integer.valueOf(args[1]);
  35. skill = Skills.getSkillType(args[0]);
  36. Users.getProfile(modifiedPlayer).addXPOverride(skill, xp);
  37. if (skill.equals(SkillType.ALL)) {
  38. skillName = "all skills";
  39. }
  40. else {
  41. skillName = m.getCapitalized(skill.toString());
  42. }
  43. modifiedPlayer.sendMessage(ChatColor.GREEN + "You were awarded " + xp + " experience in " + skillName + "!"); //TODO: Needs more locale.
  44. if (skill.equals(SkillType.ALL)) {
  45. Skills.XpCheckAll(modifiedPlayer);
  46. }
  47. else {
  48. Skills.XpCheckSkill(skill, modifiedPlayer);
  49. }
  50. }
  51. }
  52. else {
  53. sender.sendMessage(usage);
  54. }
  55. return true;
  56. case 3:
  57. modifiedPlayer = plugin.getServer().getPlayer(args[0]);
  58. String playerName = modifiedPlayer.getName();
  59. if (modifiedPlayer != null && m.isInt(args[2]) && Skills.isSkill(args[1])) {
  60. xp = Integer.valueOf(args[2]);
  61. skill = Skills.getSkillType(args[1]);
  62. String message;
  63. Users.getProfile(modifiedPlayer).addXPOverride(skill, xp);
  64. if (skill.equals(SkillType.ALL)) {
  65. skillName = "all skills";
  66. message = ChatColor.RED + "All skills have been modified for " + playerName + "."; //TODO: Use locale
  67. }
  68. else {
  69. skillName = m.getCapitalized(skill.toString());
  70. message = ChatColor.RED + skillName + " has been modified for " + playerName + "."; //TODO: Use locale
  71. }
  72. sender.sendMessage(message);
  73. modifiedPlayer.sendMessage(ChatColor.GREEN + "You were awarded " + xp + " experience in " + skillName + "!"); //TODO: Needs more locale.
  74. if (skill.equals(SkillType.ALL)) {
  75. Skills.XpCheckAll(modifiedPlayer);
  76. }
  77. else {
  78. Skills.XpCheckSkill(skill, modifiedPlayer);
  79. }
  80. }
  81. else {
  82. sender.sendMessage(usage);
  83. }
  84. return true;
  85. default:
  86. sender.sendMessage(usage);
  87. return true;
  88. }
  89. }
  90. }