package ru.simsonic.rscPermissions.Bukkit; import java.net.InetSocketAddress; import java.util.ArrayList; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import ru.simsonic.rscMinecraftLibrary.Bukkit.Tools; public class BukkitUtilities { public static Player findOnlinePlayer(String player) { for(Player online : Tools.getOnlinePlayers()) if(online.getName().equals(player)) return online; return null; } public static String[] getOfflinePlayerIdentifiers(OfflinePlayer offline) { final ArrayList result = new ArrayList<>(); // SERVERS BEFORE UUIDs try { result.add(offline.getName()); } catch(RuntimeException | NoSuchMethodError ex) { } // SERVERS WITH UUIDs try { result.add(offline.getUniqueId().toString().toLowerCase()); } catch(RuntimeException | NoSuchMethodError ex) { } return result.toArray(new String[result.size()]); } public static String[] getPlayerIdentifiers(Player player) { // SERVERS BEFORE UUIDs final ArrayList result = new ArrayList<>(); try { result.add(player.getName()); } catch(RuntimeException | NoSuchMethodError ex) { } // SERVERS WITH UUIDs try { result.add(player.getUniqueId().toString().toLowerCase()); } catch(RuntimeException | NoSuchMethodError ex) { } // ONLINE IP CONNECTION final InetSocketAddress socketAddress = player.getAddress(); if(socketAddress != null) result.add(socketAddress.getAddress().getHostAddress()); return result.toArray(new String[result.size()]); } }