Вопрос Как получить TPS в виде одного числа

mrELken

Пользователь
Сообщения
11
Хотел бы узнать, как получить TPS сервера в виде одного числа (20.0)
Возможно ответ уже где-то написан, но я не нашел
 
Решение
Нашёл 2 метода. Первый безболезненный, работает только на Paper и его форках (мб и не-paper форки тоже поддерживают этот метод), а второй - лезть в nms.

Java:
private static double[] getRecentTpsPaperSpigot() throws Throwable {
    return Bukkit.getServer().spigot().getTPS();
}

private static double[] getRecentTpsRefl() throws Throwable {
    if (minecraftServer == null) {
        Server server = Bukkit.getServer();
        Field consoleField = server.getClass().getDeclaredField("console");
        consoleField.setAccessible(true);
        minecraftServer = consoleField.get(server);
    }
    if (recentTps == null) {
        recentTps = minecraftServer.getClass().getSuperclass().getDeclaredField("recentTps")...
Нашёл 2 метода. Первый безболезненный, работает только на Paper и его форках (мб и не-paper форки тоже поддерживают этот метод), а второй - лезть в nms.

Java:
private static double[] getRecentTpsPaperSpigot() throws Throwable {
    return Bukkit.getServer().spigot().getTPS();
}

private static double[] getRecentTpsRefl() throws Throwable {
    if (minecraftServer == null) {
        Server server = Bukkit.getServer();
        Field consoleField = server.getClass().getDeclaredField("console");
        consoleField.setAccessible(true);
        minecraftServer = consoleField.get(server);
    }
    if (recentTps == null) {
        recentTps = minecraftServer.getClass().getSuperclass().getDeclaredField("recentTps");
        recentTps.setAccessible(true);
    }
    return (double[]) recentTps.get(minecraftServer);
}

Источник
 
Назад
Сверху Снизу