public static ProxiedPlayer findPlayerSmart(CommandIssuer issuer, String search) { CommandSender requester = issuer.getIssuer(); String name = ACFUtil.replace(search, ":confirm", ""); if (name.length() < 3) { issuer.sendError(MinecraftMessageKeys.USERNAME_TOO_SHORT); return null; } if (!isValidName(name)) { issuer.sendError(MinecraftMessageKeys.IS_NOT_A_VALID_NAME, "{name}", name); return null; } List<ProxiedPlayer> matches = new ArrayList<>(ProxyServer.getInstance().matchPlayer(name)); if (matches.size() > 1) { String allMatches = matches.stream().map(ProxiedPlayer::getName).collect(Collectors.joining(", ")); issuer.sendError(MinecraftMessageKeys.MULTIPLE_PLAYERS_MATCH, "{search}", name, "{all}", allMatches); return null; } if (matches.isEmpty()) { issuer.sendError(MinecraftMessageKeys.NO_PLAYER_FOUND_SERVER, "{search}", name); return null; } return matches.get(0); }