private boolean invite(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { return true; } Player player = (Player) sender; if (args.length != 1) { return false; } // check if leader Party party = plugin.parties.get(player.getName().toLowerCase()); if (party == null) { party = new Party(player); } if (!party.isLeader(player)) { player.sendMessage("You can only invite someone if you are the party leader."); return true; } // get target player Player target = null; List<Player> matches = Bukkit.matchPlayer(args[0]); if (matches.size() == 1) { target = matches.get(0); } if (target == null) { player.sendMessage("No such player found."); return true; } // check if target is already in a party if (plugin.parties.containsKey(target.getName().toLowerCase())) { player.sendMessage("That player is already in a party."); return true; } // check if target is in an instance if (!target.getWorld().equals(Bukkit.getWorlds().get(0))) { player.sendMessage("That player is in an instance."); return true; } // invite to party plugin.parties.put(player.getName().toLowerCase(), party); target.sendMessage(player.getDisplayName() + " has invited you to join a party."); target.sendMessage("Type 'yes' to accept this invitation."); PendingAction action = new PendingAction(target, ActionType.JOIN_PARTY, player.getName().toLowerCase()); plugin.addPendingAction(action); player.sendMessage("Invitation sent."); return true; }