QoL/src/main/java/xyz/etztech/qol/other/TPSRunnable.java

41 lines
1.3 KiB
Java

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<StatisticWindow.TicksPerSecond> 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<String, String> data = new HashMap<>();
data.put("username", "TPS Alert");
data.put("content", message);
Http.asyncPost(plugin, webhook, data);
}
}
}
}
}