PartyLockCommand.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.gmail.nossr50.commands.party;
  2. import com.gmail.nossr50.datatypes.party.Party;
  3. import com.gmail.nossr50.locale.LocaleLoader;
  4. import com.gmail.nossr50.util.Permissions;
  5. import com.gmail.nossr50.util.commands.CommandUtils;
  6. import com.gmail.nossr50.util.player.UserManager;
  7. import org.bukkit.command.Command;
  8. import org.bukkit.command.CommandExecutor;
  9. import org.bukkit.command.CommandSender;
  10. import org.bukkit.entity.Player;
  11. import org.jetbrains.annotations.NotNull;
  12. public class PartyLockCommand implements CommandExecutor {
  13. @Override
  14. public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
  15. switch (args.length) {
  16. case 1:
  17. if (args[0].equalsIgnoreCase("lock")) {
  18. togglePartyLock(sender, true);
  19. }
  20. else if (args[0].equalsIgnoreCase("unlock")) {
  21. togglePartyLock(sender, false);
  22. }
  23. return true;
  24. case 2:
  25. if (!args[0].equalsIgnoreCase("lock")) {
  26. sendUsageStrings(sender);
  27. return true;
  28. }
  29. if (CommandUtils.shouldEnableToggle(args[1])) {
  30. togglePartyLock(sender, true);
  31. }
  32. else if (CommandUtils.shouldDisableToggle(args[1])) {
  33. togglePartyLock(sender, false);
  34. }
  35. else {
  36. sendUsageStrings(sender);
  37. }
  38. return true;
  39. default:
  40. sendUsageStrings(sender);
  41. return true;
  42. }
  43. }
  44. private void sendUsageStrings(CommandSender sender) {
  45. sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "lock", "[on|off]"));
  46. sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "unlock"));
  47. }
  48. private void togglePartyLock(CommandSender sender, boolean lock) {
  49. if(UserManager.getPlayer((Player) sender) == null)
  50. {
  51. sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
  52. return;
  53. }
  54. Party party = UserManager.getPlayer((Player) sender).getParty();
  55. if (!Permissions.partySubcommand(sender, lock ? PartySubcommandType.LOCK : PartySubcommandType.UNLOCK)) {
  56. sender.sendMessage(LocaleLoader.getString("mcMMO.NoPermission"));
  57. return;
  58. }
  59. if (lock == party.isLocked()) {
  60. sender.sendMessage(LocaleLoader.getString("Party." + (lock ? "IsLocked" : "IsntLocked")));
  61. return;
  62. }
  63. party.setLocked(lock);
  64. sender.sendMessage(LocaleLoader.getString("Party." + (lock ? "Locked" : "Unlocked")));
  65. }
  66. }