PartyLockCommand.java 2.8 KB

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