diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/Tablist.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/Tablist.java index 19c6e77..a39e266 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/Tablist.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/Tablist.java @@ -19,19 +19,19 @@ import java.util.List; public class Tablist extends Appliance { private final int refreshRate = Ticks.TICKS_PER_SECOND * 3; - private final RainbowComponent serverName = new RainbowComponent(" CraftAttack 6 ", 7, 3); + private final RainbowComponent serverName = new RainbowComponent(" CraftAttack 7 ", 7, 3); @Override public void onEnable() { Bukkit.getScheduler().runTaskTimerAsynchronously( Main.instance(), - () -> IteratorUtil.onlinePlayers(this::update), + () -> IteratorUtil.onlinePlayers(this::updateHeader), refreshRate, refreshRate ); } - public void update(Player player) { + public void fullUpdate(Player player) { updateHeader(player); updateFooter(player); } diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/TablistListener.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/TablistListener.java index cd47f46..a007d57 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/TablistListener.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/tablist/TablistListener.java @@ -7,6 +7,6 @@ import org.bukkit.event.player.PlayerJoinEvent; public class TablistListener extends ApplianceListener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - getAppliance().update(event.getPlayer()); + getAppliance().fullUpdate(event.getPlayer()); } } diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java b/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java index f406135..89ed017 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java @@ -40,29 +40,38 @@ public class ComponentUtil { public static Component getFormattedMSPT() { long[] times = Bukkit.getServer().getTickTimes(); - double mspt = ((double) Arrays.stream(times).sum() / (double) times.length) * 1.0E-6D; - double roundedMspt = (double) Math.round(mspt * 100d) / 100d; - - int percentage = (int) (Math.min(100, (mspt / 50.0) * 100)); + float mspt = ((float) Arrays.stream(times).sum() / times.length) * 1.0E-6f; + float roundedMspt = Math.round(mspt * 100f) / 100f; + int loadPercentage = (int) (Math.min(100, (mspt / 50.0) * 100)); + float roundedTPS = Math.round(Bukkit.getTPS()[0] * 100f) / 100f; TextColor msptColor = ColorUtil.mapGreenToRed(roundedMspt, 0, 50, true); - TextColor percentageColor = ColorUtil.mapGreenToRed(percentage, 80, 100, true); + TextColor percentageColor = ColorUtil.mapGreenToRed(loadPercentage, 80, 100, true); + TextColor tpsColor = ColorUtil.mapGreenToRed(roundedTPS, 15, 20, false); return Component.text() .append(Component.text("Serverlast: ", NamedTextColor.GRAY)) - .append(Component.text(percentage + "% ", percentageColor)) + .append(Component.text(loadPercentage + "% ", percentageColor)) .appendNewline() - .append(Component.text("(", NamedTextColor.GRAY)) - .append(Component.text(roundedMspt + "ms", msptColor)) - .append(Component.text(" per tick)", NamedTextColor.GRAY)) + .append(Component.text(roundedMspt + "mspt", msptColor)) + .append(Component.text(" | ", NamedTextColor.GRAY)) + .append(Component.text(roundedTPS + "tps", tpsColor)) .build(); } public static Component getFormattedPing(Player player) { + int playerPing = player.getPing(); + int averagePing = Bukkit.getOnlinePlayers().stream() + .map(Player::getPing).reduce(Integer::sum) + .orElse(0) / Bukkit.getOnlinePlayers().size(); + return Component.text() .append(Component.text("Dein Ping: ", NamedTextColor.GRAY)) - .append(Component.text(player.getPing() + "ms", ColorUtil.mapGreenToRed(player.getPing(), 100, 500, true))) + .append(Component.text(playerPing + "ms", ColorUtil.mapGreenToRed(playerPing, 50, 200, true))) + .append(Component.text(" | ", NamedTextColor.GRAY)) + .append(Component.text("Durschnitt: ", NamedTextColor.GRAY)) + .append(Component.text(averagePing + "ms", ColorUtil.mapGreenToRed(averagePing, 50, 200, true))) .build(); }