package xyz.etztech.qol.other; import me.lucko.spark.api.statistic.StatisticWindow; import me.lucko.spark.api.statistic.types.DoubleStatistic; import org.apache.commons.lang.StringUtils; import xyz.etztech.core.web.Http; import xyz.etztech.qol.QoL; import me.lucko.spark.api.Spark; import java.util.HashMap; import java.util.Map; public class TPSRunnable implements Runnable { private QoL plugin; public TPSRunnable(QoL plugin) { this.plugin = plugin; } @Override public void run() { Spark spark = plugin.getSpark(); if (spark != null) { DoubleStatistic tps = spark.tps(); int threshold = plugin.getConfig().getInt("tps.threshold", 0); String webhook = plugin.getConfig().getString("tps.webhook", ""); String message = "@here TPS has fallen below " + threshold + "!"; if (tps.poll(StatisticWindow.TicksPerSecond.SECONDS_10) < threshold) { plugin.log(message); if (StringUtils.isNotEmpty(webhook)) { Map data = new HashMap<>(); data.put("username", "TPS Alert"); data.put("content", message); Http.asyncPost(plugin, webhook, data); } } } } }