public static boolean removeFriend(ProxiedPlayer p, String who) { if (who == null || who == "") { Messages.FRIEND_FAIL_REMOVED.msg(p, "%player%", who); return false; } // Parameter fehlt bzw. ungültig ProxiedPlayer whoPlayer = Util.getPlayer(who); PlayerData pd = PlayerData.get(p.getUniqueId()); if (whoPlayer == null) { for (UUID uuid : pd.getFriends().keySet()) { Friend friend = pd.getFriends().get(uuid); if (friend.getFriendName().equalsIgnoreCase(who)) { friend.remove(true); pd.getFriends().remove(uuid); Messages.FRIEND_REMOVED.msg(p, "%player%", who); PluginMessenger.sendMessage(p, "Friend", "Update"); return true; } } Messages.FRIEND_NOT_IN_FRIENDLIST.msg(p, "%player%", who); return false; } else { if (pd.getFriends().containsKey(whoPlayer.getUniqueId())) { pd.getFriends().remove(whoPlayer.getUniqueId()); Messages.FRIEND_REMOVED.msg(p, "%player%", whoPlayer.getName()); PluginMessenger.sendMessage(p, "Friend", "Update"); return true; } Messages.FRIEND_NOT_IN_FRIENDLIST.msg(p, "%player%", who); return false; } }
@Override public Iterable<String> onTabComplete(CommandSender sender, String[] args) { if (args.length <= 0) return null; Set<String> matches = new HashSet<>(); switch (args[0].toLowerCase()) { case "add": { if (args.length != 2) break; if (args[1].length() >= 2) { String search = args[1].toLowerCase(); for (ProxiedPlayer p : Util.PROXY.getPlayers()) { if (p.getName().toLowerCase().startsWith(search)) matches.add(p.getName()); } return matches; } break; } case "remove": { if (args.length != 2) break; if (args[1].length() >= 2) { if (!(sender instanceof ProxiedPlayer)) return null; ProxiedPlayer player = (ProxiedPlayer) sender; String search = args[1].toLowerCase(); PlayerData pd = PlayerData.get(player.getUniqueId()); for (Friend friend : pd.getFriends().values()) { if (friend.getFriendName().toLowerCase().startsWith(search)) matches.add(friend.getFriendName()); } } break; } case "accept": { if (args.length != 3) break; if (args[2].length() >= 2) { if (!(sender instanceof ProxiedPlayer)) return null; ProxiedPlayer player = (ProxiedPlayer) sender; String search = args[2].toLowerCase(); PlayerData pd = PlayerData.get(player.getUniqueId()); for (FriendRequest fr : pd.getFriendRequests()) { if (fr.getSender().getName().toLowerCase().startsWith(search)) matches.add(fr.getSender().getName()); } } break; } default: { if (args.length == 1) { String search = args[0].toLowerCase(); for (String subcmd : Util.FRIEND_SUBCOMMANDS) { if (subcmd.toLowerCase().startsWith(search)) matches.add(subcmd); } } break; } } return matches; }