Files
notify-on-start/src/main/java/moe/sob/Utils.java
T

58 lines
1.8 KiB
Java
Raw Normal View History

package moe.sob;
2023-03-28 19:24:11 +08:00
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);
}
}
}