mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-11-23 23:38:41 +01:00
Add player device OS to metrics (#1391)
* Add player device os to metrics * Add player version, Geyser version, and default locale Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
This commit is contained in:
parent
96db37c14c
commit
3f7120d9da
1 changed files with 34 additions and 1 deletions
|
@ -66,7 +66,9 @@ import java.net.InetSocketAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
@ -199,8 +201,39 @@ public class GeyserConnector {
|
||||||
metrics = new Metrics(this, "GeyserMC", config.getMetrics().getUniqueId(), false, java.util.logging.Logger.getLogger(""));
|
metrics = new Metrics(this, "GeyserMC", config.getMetrics().getUniqueId(), false, java.util.logging.Logger.getLogger(""));
|
||||||
metrics.addCustomChart(new Metrics.SingleLineChart("servers", () -> 1));
|
metrics.addCustomChart(new Metrics.SingleLineChart("servers", () -> 1));
|
||||||
metrics.addCustomChart(new Metrics.SingleLineChart("players", players::size));
|
metrics.addCustomChart(new Metrics.SingleLineChart("players", players::size));
|
||||||
metrics.addCustomChart(new Metrics.SimplePie("authMode", authType.name()::toLowerCase));
|
// Prevent unwanted words best we can
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("authMode", () -> AuthType.getByName(config.getRemote().getAuthType()).toString()));
|
||||||
metrics.addCustomChart(new Metrics.SimplePie("platform", platformType::getPlatformName));
|
metrics.addCustomChart(new Metrics.SimplePie("platform", platformType::getPlatformName));
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("defaultLocale", LanguageUtils::getDefaultLocale));
|
||||||
|
metrics.addCustomChart(new Metrics.SimplePie("version", () -> GeyserConnector.VERSION));
|
||||||
|
metrics.addCustomChart(new Metrics.AdvancedPie("playerPlatform", () -> {
|
||||||
|
Map<String, Integer> valueMap = new HashMap<>();
|
||||||
|
for (GeyserSession session : players) {
|
||||||
|
if (session == null) continue;
|
||||||
|
if (session.getClientData() == null) continue;
|
||||||
|
String os = session.getClientData().getDeviceOS().toString();
|
||||||
|
if (!valueMap.containsKey(os)) {
|
||||||
|
valueMap.put(os, 1);
|
||||||
|
} else {
|
||||||
|
valueMap.put(os, valueMap.get(os) + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return valueMap;
|
||||||
|
}));
|
||||||
|
metrics.addCustomChart(new Metrics.AdvancedPie("playerVersion", () -> {
|
||||||
|
Map<String, Integer> valueMap = new HashMap<>();
|
||||||
|
for (GeyserSession session : players) {
|
||||||
|
if (session == null) continue;
|
||||||
|
if (session.getClientData() == null) continue;
|
||||||
|
String version = session.getClientData().getGameVersion();
|
||||||
|
if (!valueMap.containsKey(version)) {
|
||||||
|
valueMap.put(version, 1);
|
||||||
|
} else {
|
||||||
|
valueMap.put(version, valueMap.get(version) + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return valueMap;
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isGui = false;
|
boolean isGui = false;
|
||||||
|
|
Loading…
Reference in a new issue