updated tablist

This commit is contained in:
Elias Müller 2024-07-28 01:25:54 +02:00
parent 71c413673d
commit b5bab4e4b6
3 changed files with 23 additions and 14 deletions

View File

@ -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);
}

View File

@ -7,6 +7,6 @@ import org.bukkit.event.player.PlayerJoinEvent;
public class TablistListener extends ApplianceListener<Tablist> {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
getAppliance().update(event.getPlayer());
getAppliance().fullUpdate(event.getPlayer());
}
}

View File

@ -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();
}