package cf.sobrooms; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; public class Utils { public static String getActivePlayers() { var players = Bukkit.getServer().getOnlinePlayers(); String activePlayers; if (players.size() < 1) { activePlayers = "None."; } else { activePlayers = ""; int playersCounted = 0; for (Player player : players) { playersCounted++; activePlayers = "%s\n%s) %s".formatted(activePlayers, playersCounted, player.getName()); } } return activePlayers; } public static String getServerHostPublicIP() { String urlString = "http://myexternalip.com/raw"; try { URL url = new URL(urlString); try (BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()))) { return br.readLine(); } } catch (IOException e) { throw new RuntimeException(e); } } public static String getServerPing(String address) { try { int timeout = 3000; long startTime = System.currentTimeMillis(); InetAddress serverAddress = InetAddress.getByName(address); boolean reachable = serverAddress.isReachable(timeout); long endTime = System.currentTimeMillis(); long latency = endTime - startTime; if (reachable) { return String.valueOf(latency); } else { return "404svh"; } } catch (IOException e) { throw new RuntimeException(e); } } }