Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Это не он мусор выдаёт. Это ты Java не знаешь и документацию не смотришь. Привёл массив к строке - вот и результат.Как получить тпс? getTPS выдаёт мусор
![]()
@SuppressWarnings("deprecation")
public double getTickTime() {
return MathHelper.a(MinecraftServer.getServer().h) * 1.0E-6D;
}
public double getTPS() {
double tps = 1000/getTickTime();
return tps <= 20 ? tps : 20;
}
Нельзя определять TPS сервера по времени одного отдельного тика. Очень неточно.Чтобы получить время затраченное на выполнение последнего тика (в миллисекундах)
Работает до 1.12.2, выше не проверял
Код:@SuppressWarnings("deprecation") public double getTickTime() { return MathHelper.a(MinecraftServer.getServer().h) * 1.0E-6D; }
Чтобы получить ТПС
Лагов нет если время тика не превышает 50мсКод:public double getTPS() { double tps = 1000/getTickTime(); return tps <= 20 ? tps : 20; }
Обычное getTPS возвращает 3 значение - среднее ТПС за промежуток времени.
Код выше возвращает ТПС в тот момент когда вызываешь метод
Всё зависит от целей. Это лишь один из вариантов.Нельзя определять TPS сервера по времени одного отдельного тика. Очень неточно.
Хотя бы секунд 5 нужно, а лучше как раз минуту
package lag;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
public class TPS extends JavaPlugin
{
private static transient Timer timer;
public void onEnable() {
TPS.timer = new Timer();
this.getServer().getScheduler().scheduleSyncRepeatingTask((Plugin)this, (Runnable)TPS.timer, 100L, 50L);
}
public static double getTPS() {
return TPS.timer.get();
}
}
package lag;
import java.util.Iterator;
import java.util.LinkedList;
public class Timer implements Runnable
{
private transient long last;
private final LinkedList<Double> history;
Timer() {
this.last = System.nanoTime();
(this.history = new LinkedList<Double>()).add(20.0);
}
@Override
public void run() {
final long startTime = System.nanoTime();
long timeSpent = (startTime - this.last) / 1000L;
if (timeSpent == 0L) {
timeSpent = 1L;
}
if (this.history.size() > 10) {
this.history.remove();
}
final double tps = 5.0E7 / timeSpent;
if (tps <= 21.0) {
this.history.add(tps);
}
this.last = startTime;
}
public double get() {
double avg = 0.0;
for (final Double f : this.history) {
if (f != null) {
avg += f;
}
}
return avg / this.history.size();
}
}