diff --git a/src/main/java/cc/fascinated/metrics/MetricManager.java b/src/main/java/cc/fascinated/metrics/MetricManager.java index a5897d4..e640fd7 100644 --- a/src/main/java/cc/fascinated/metrics/MetricManager.java +++ b/src/main/java/cc/fascinated/metrics/MetricManager.java @@ -1,10 +1,7 @@ package cc.fascinated.metrics; import cc.fascinated.Aetheria; -import cc.fascinated.metrics.impl.server.MemoryMetric; -import cc.fascinated.metrics.impl.server.PlayerCountMetric; -import cc.fascinated.metrics.impl.server.TotalJoinsMetric; -import cc.fascinated.metrics.impl.server.TpsMetric; +import cc.fascinated.metrics.impl.server.*; import cc.fascinated.metrics.impl.system.CpuUsageMetric; import cc.fascinated.metrics.impl.world.WorldSizeMetric; import com.influxdb.client.InfluxDBClient; @@ -24,7 +21,6 @@ import org.bukkit.event.server.PluginDisableEvent; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.TimeUnit; @Log4j2 public class MetricManager implements Listener { @@ -72,8 +68,10 @@ public class MetricManager implements Listener { registerMetric(new MemoryMetric()); registerMetric(new PlayerCountMetric()); registerMetric(new TotalJoinsMetric()); + registerMetric(new EntityCountMetric()); + registerMetric(new LoadedChunksMetric()); - Bukkit.getAsyncScheduler().runAtFixedRate(Aetheria.INSTANCE, (task) -> this.collectMetrics(), 30, 30, TimeUnit.SECONDS); + Bukkit.getScheduler().runTaskTimer(Aetheria.INSTANCE, (task) -> this.collectMetrics(), 30 * 20, 30 * 20); } /** diff --git a/src/main/java/cc/fascinated/metrics/impl/server/EntityCountMetric.java b/src/main/java/cc/fascinated/metrics/impl/server/EntityCountMetric.java new file mode 100644 index 0000000..d1678f1 --- /dev/null +++ b/src/main/java/cc/fascinated/metrics/impl/server/EntityCountMetric.java @@ -0,0 +1,29 @@ +package cc.fascinated.metrics.impl.server; + +import cc.fascinated.metrics.Metric; +import com.influxdb.client.write.Point; +import org.bukkit.Bukkit; +import org.bukkit.World; + +import java.util.HashMap; +import java.util.Map; + +public class EntityCountMetric extends Metric { + + public EntityCountMetric() { + super("entity_count"); + } + + @Override + protected Point toPoint() { + Map entityCount = new HashMap<>(); + for (World world : Bukkit.getWorlds()) { + entityCount.put(world, world.getEntities().size()); + } + Point point = Point.measurement(getName()); + for (Map.Entry entry : entityCount.entrySet()) { + point.addField(entry.getKey().getName(), entry.getValue()); + } + return point; + } +} diff --git a/src/main/java/cc/fascinated/metrics/impl/server/LoadedChunksMetric.java b/src/main/java/cc/fascinated/metrics/impl/server/LoadedChunksMetric.java new file mode 100644 index 0000000..b293be8 --- /dev/null +++ b/src/main/java/cc/fascinated/metrics/impl/server/LoadedChunksMetric.java @@ -0,0 +1,29 @@ +package cc.fascinated.metrics.impl.server; + +import cc.fascinated.metrics.Metric; +import com.influxdb.client.write.Point; +import org.bukkit.Bukkit; +import org.bukkit.World; + +import java.util.HashMap; +import java.util.Map; + +public class LoadedChunksMetric extends Metric { + + public LoadedChunksMetric() { + super("loaded_chunks"); + } + + @Override + protected Point toPoint() { + Map entityCount = new HashMap<>(); + for (World world : Bukkit.getWorlds()) { + entityCount.put(world, world.getChunkCount()); + } + Point point = Point.measurement(getName()); + for (Map.Entry entry : entityCount.entrySet()) { + point.addField(entry.getKey().getName(), entry.getValue()); + } + return point; + } +} diff --git a/src/main/java/cc/fascinated/playercolors/ColorManager.java b/src/main/java/cc/fascinated/playercolors/ColorManager.java index 11446c7..4dda6fa 100644 --- a/src/main/java/cc/fascinated/playercolors/ColorManager.java +++ b/src/main/java/cc/fascinated/playercolors/ColorManager.java @@ -2,14 +2,12 @@ package cc.fascinated.playercolors; import cc.fascinated.Aetheria; import io.papermc.paper.event.player.AsyncChatEvent; -import it.unimi.dsi.fastutil.HashCommon; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scoreboard.Scoreboard;