58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
|
|
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.URL;
|
||
|
|
|
||
|
|
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|