AddlevelsCommand.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.gmail.nossr50.commands.experience;
  2. import com.gmail.nossr50.datatypes.player.McMMOPlayer;
  3. import com.gmail.nossr50.datatypes.player.PlayerProfile;
  4. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  5. import com.gmail.nossr50.locale.LocaleLoader;
  6. import com.gmail.nossr50.util.EventUtils;
  7. import com.gmail.nossr50.util.Permissions;
  8. import com.gmail.nossr50.util.player.UserManager;
  9. import org.bukkit.command.CommandSender;
  10. import org.bukkit.entity.Player;
  11. public class AddlevelsCommand extends ExperienceCommand {
  12. @Override
  13. protected boolean permissionsCheckSelf(CommandSender sender) {
  14. return Permissions.addlevels(sender);
  15. }
  16. @Override
  17. protected boolean permissionsCheckOthers(CommandSender sender) {
  18. return Permissions.addlevelsOthers(sender);
  19. }
  20. @Override
  21. protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
  22. float xpRemoved = profile.getSkillXpLevelRaw(skill);
  23. profile.addLevels(skill, value);
  24. if (player == null) {
  25. UserManager.getPlayerSaveHandler().scheduleAsyncSave(profile.getPlayerData());
  26. return;
  27. }
  28. McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
  29. if(mmoPlayer == null) {
  30. EventUtils.tryLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND);
  31. } else {
  32. EventUtils.tryLevelChangeEvent(mmoPlayer, skill, value, xpRemoved, true, XPGainReason.COMMAND);
  33. }
  34. }
  35. @Override
  36. protected void handlePlayerMessageAll(Player player, int value, boolean isSilent) {
  37. if(isSilent)
  38. return;
  39. player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
  40. }
  41. @Override
  42. protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill, boolean isSilent) {
  43. if(isSilent)
  44. return;
  45. player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getName()));
  46. }
  47. }