PartyRenameCommand.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.gmail.nossr50.party.commands;
  2. import org.bukkit.command.Command;
  3. import org.bukkit.command.CommandExecutor;
  4. import org.bukkit.command.CommandSender;
  5. import org.bukkit.entity.Player;
  6. import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
  7. import com.gmail.nossr50.locale.LocaleLoader;
  8. import com.gmail.nossr50.party.Party;
  9. import com.gmail.nossr50.party.PartyManager;
  10. import com.gmail.nossr50.util.Users;
  11. public class PartyRenameCommand implements CommandExecutor {
  12. @Override
  13. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  14. if (!sender.hasPermission("mcmmo.commands.party.rename")) {
  15. sender.sendMessage(command.getPermissionMessage());
  16. return true;
  17. }
  18. Party playerParty = Users.getPlayer((Player) sender).getParty();
  19. String leaderName = playerParty.getLeader();
  20. switch (args.length) {
  21. case 2:
  22. String newPartyName = args[1];
  23. // This is to prevent party leaders from spamming other players with the rename message
  24. if (playerParty.getName().equalsIgnoreCase(newPartyName)) {
  25. sender.sendMessage(LocaleLoader.getString("Party.Rename.Same"));
  26. return true;
  27. }
  28. Party newParty = PartyManager.getParty(newPartyName);
  29. // Check to see if the party exists, and if it does cancel renaming the party
  30. if (newParty != null) {
  31. sender.sendMessage(LocaleLoader.getString("Commands.Party.AlreadyExists", newPartyName));
  32. return true;
  33. }
  34. for (Player member : playerParty.getOnlineMembers()) {
  35. if (!PartyManager.handlePartyChangeEvent(member, playerParty.getName(), newPartyName, EventReason.CHANGED_PARTIES)) {
  36. return true;
  37. }
  38. if (!member.getName().equals(leaderName)) {
  39. member.sendMessage(LocaleLoader.getString("Party.InformedOnNameChange", leaderName, newPartyName));
  40. }
  41. }
  42. playerParty.setName(newPartyName);
  43. sender.sendMessage(LocaleLoader.getString("Commands.Party.Rename", newPartyName));
  44. return true;
  45. default:
  46. sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "rename", "<" + LocaleLoader.getString("Commands.Usage.PartyName") + ">"));
  47. return true;
  48. }
  49. }
  50. }