AddlevelsCommand.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.gmail.nossr50.commands.experience;
  2. import com.gmail.nossr50.datatypes.experience.XPGainReason;
  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 org.bukkit.command.CommandSender;
  9. import org.bukkit.entity.Player;
  10. public class AddlevelsCommand extends ExperienceCommand {
  11. @Override
  12. protected boolean permissionsCheckSelf(CommandSender sender) {
  13. return Permissions.addlevels(sender);
  14. }
  15. @Override
  16. protected boolean permissionsCheckOthers(CommandSender sender) {
  17. return Permissions.addlevelsOthers(sender);
  18. }
  19. @Override
  20. protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
  21. float xpRemoved = profile.getSkillXpLevelRaw(skill);
  22. profile.addLevels(skill, value);
  23. if (player == null) {
  24. profile.scheduleAsyncSave();
  25. return;
  26. }
  27. EventUtils.tryLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND);
  28. }
  29. @Override
  30. protected void handlePlayerMessageAll(Player player, int value, boolean isSilent) {
  31. if(isSilent)
  32. return;
  33. player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
  34. }
  35. @Override
  36. protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill, boolean isSilent) {
  37. if(isSilent)
  38. return;
  39. player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getLocalizedName()));
  40. }
  41. }