diff --git a/src/main/java/org/adde0109/ambassador/Ambassador.java b/src/main/java/org/adde0109/ambassador/Ambassador.java index c4ffe61..35d54cd 100644 --- a/src/main/java/org/adde0109/ambassador/Ambassador.java +++ b/src/main/java/org/adde0109/ambassador/Ambassador.java @@ -10,10 +10,13 @@ import com.velocitypowered.api.plugin.Plugin; import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; +import java.util.concurrent.Callable; import org.adde0109.ambassador.forge.ForgeConnection; import org.adde0109.ambassador.forge.ForgeHandshakeHandler; import org.adde0109.ambassador.forge.ForgeHandshakeUtils; import org.adde0109.ambassador.forge.ForgeServerSwitchHandler; +import org.bstats.MetricsBase; +import org.bstats.charts.SingleLineChart; import org.bstats.velocity.Metrics; import org.slf4j.Logger; @@ -44,7 +47,7 @@ public class Ambassador { @Subscribe public void onProxyInitialization(ProxyInitializeEvent event) { - metricsFactory.make(this, 15655); + initMetrics(); config = AmbassadorConfig.readOrCreateConfig(dataDirectory,server,logger); if(config != null) { @@ -85,4 +88,14 @@ public class Ambassador { } continuation.resume(); } + + private void initMetrics() { + Metrics metrics = metricsFactory.make(this, 15655); + metrics.addCustomChart(new SingleLineChart("modern_forge_players", new Callable() { + @Override + public Integer call() throws Exception { + return (forgeHandshakeHandler != null) ? forgeHandshakeHandler.getAmountOfForgeConnections() : 0; + } + })); + } } diff --git a/src/main/java/org/adde0109/ambassador/forge/ForgeHandshakeHandler.java b/src/main/java/org/adde0109/ambassador/forge/ForgeHandshakeHandler.java index 61131bb..6e2b94e 100644 --- a/src/main/java/org/adde0109/ambassador/forge/ForgeHandshakeHandler.java +++ b/src/main/java/org/adde0109/ambassador/forge/ForgeHandshakeHandler.java @@ -19,6 +19,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.format.NamedTextColor; import org.adde0109.ambassador.Ambassador; +import org.bstats.velocity.Metrics; public class ForgeHandshakeHandler { @@ -86,6 +87,10 @@ public class ForgeHandshakeHandler { return Optional.ofNullable(incomingForgeConnections.get(socketAddress)); } + public int getAmountOfForgeConnections() { + return incomingForgeConnections.size(); + } + public Optional getForgeServerConnection(RegisteredServer registeredServer) { return Optional.ofNullable(forgeServerConnectionMap.get(registeredServer)); }