PartyLockCommand.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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.locale.LocaleLoader;
  7. import com.gmail.nossr50.party.Party;
  8. import com.gmail.nossr50.util.Users;
  9. public class PartyLockCommand implements CommandExecutor {
  10. private Party playerParty;
  11. @Override
  12. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  13. playerParty = Users.getPlayer((Player) sender).getParty();
  14. switch (args.length) {
  15. case 1:
  16. if (args[0].equalsIgnoreCase("lock")) {
  17. lockParty(sender, command);
  18. }
  19. else if (args[0].equalsIgnoreCase("unlock")) {
  20. unlockParty(sender, command);
  21. }
  22. return true;
  23. case 2:
  24. if (!args[0].equalsIgnoreCase("lock")) {
  25. sendUsageStrings(sender);
  26. return true;
  27. }
  28. if (args[1].equalsIgnoreCase("on") || args[1].equalsIgnoreCase("true")) {
  29. lockParty(sender, command);
  30. }
  31. else if (args[1].equalsIgnoreCase("off") || args[1].equalsIgnoreCase("false")) {
  32. unlockParty(sender, command);
  33. }
  34. else {
  35. sendUsageStrings(sender);
  36. }
  37. return true;
  38. default:
  39. sendUsageStrings(sender);
  40. return true;
  41. }
  42. }
  43. /**
  44. * Handle locking a party.
  45. */
  46. private void lockParty(CommandSender sender, Command command) {
  47. if (!sender.hasPermission("mcmmo.commands.party.lock")) {
  48. sender.sendMessage(command.getPermissionMessage());
  49. return;
  50. }
  51. if (playerParty.isLocked()) {
  52. sender.sendMessage(LocaleLoader.getString("Party.IsLocked"));
  53. return;
  54. }
  55. playerParty.setLocked(true);
  56. sender.sendMessage(LocaleLoader.getString("Party.Locked"));
  57. }
  58. /**
  59. * Handle unlocking a party.
  60. *
  61. * @return true if party is successfully unlocked, false otherwise.
  62. */
  63. private void unlockParty(CommandSender sender, Command command) {
  64. if (!sender.hasPermission("mcmmo.commands.party.unlock")) {
  65. sender.sendMessage(command.getPermissionMessage());
  66. return;
  67. }
  68. if (!playerParty.isLocked()) {
  69. sender.sendMessage(LocaleLoader.getString("Party.IsntLocked"));
  70. return;
  71. }
  72. playerParty.setLocked(false);
  73. sender.sendMessage(LocaleLoader.getString("Party.Unlocked"));
  74. }
  75. private void sendUsageStrings(CommandSender sender) {
  76. sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "lock", "[on|off]"));
  77. sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "unlock"));
  78. }
  79. }