PartyInviteCommand.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.gmail.nossr50.commands.party;
  2. import com.gmail.nossr50.datatypes.party.Party;
  3. import com.gmail.nossr50.datatypes.player.McMMOPlayer;
  4. import com.gmail.nossr50.locale.LocaleLoader;
  5. import com.gmail.nossr50.mcMMO;
  6. import com.gmail.nossr50.util.commands.CommandUtils;
  7. import com.gmail.nossr50.util.player.UserManager;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandExecutor;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12. import org.jetbrains.annotations.NotNull;
  13. public class PartyInviteCommand implements CommandExecutor {
  14. @Override
  15. public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
  16. if (args.length == 2) {
  17. String targetName = CommandUtils.getMatchedPlayerName(args[1]);
  18. McMMOPlayer mcMMOTarget = UserManager.getOfflinePlayer(targetName);
  19. if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
  20. return false;
  21. }
  22. Player target = mcMMOTarget.getPlayer();
  23. if (UserManager.getPlayer((Player) sender) == null) {
  24. sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
  25. return true;
  26. }
  27. Player player = (Player) sender;
  28. McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
  29. String playerName = player.getName();
  30. if (player.equals(target)) {
  31. sender.sendMessage(LocaleLoader.getString("Party.Invite.Self"));
  32. return true;
  33. }
  34. if (mcMMO.p.getPartyManager().inSameParty(player, target)) {
  35. sender.sendMessage(LocaleLoader.getString("Party.Player.InSameParty", targetName));
  36. return true;
  37. }
  38. if (!mcMMO.p.getPartyManager().canInvite(mcMMOPlayer)) {
  39. player.sendMessage(LocaleLoader.getString("Party.Locked"));
  40. return true;
  41. }
  42. Party playerParty = mcMMOPlayer.getParty();
  43. if (mcMMO.p.getPartyManager().isPartyFull(target, playerParty)) {
  44. player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull.Invite", target.getName(), playerParty.toString(), mcMMO.p.getGeneralConfig().getPartyMaxSize()));
  45. return true;
  46. }
  47. mcMMOTarget.setPartyInvite(playerParty);
  48. sender.sendMessage(LocaleLoader.getString("Commands.Invite.Success"));
  49. target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.0", playerParty.getName(), playerName));
  50. target.sendMessage(LocaleLoader.getString("Commands.Party.Invite.1"));
  51. return true;
  52. }
  53. sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "invite", "<" + LocaleLoader.getString("Commands.Usage.Player") + ">"));
  54. return true;
  55. }
  56. }