From c0f6a2b926900bfed8e99fb4ad25c978cf98bab3 Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 6 Dec 2023 08:26:20 +0100 Subject: [PATCH] Add more info to Fabric's geyser dumps (#4175) * Added onlineMode, platformName, and Minecraft version to dump - renames platformVersion to loaderVersion since that is more fitting to modded structure * rename loaderVersion back to platformVersion * address review by @Konicai * Fix geyser dump creation (regression from the syntax/annotation PR) --- .../geyser/platform/fabric/GeyserFabricDumpInfo.java | 8 +++++++- .../java/org/geysermc/geyser/text/AsteriskSerializer.java | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/bootstrap/fabric/src/main/java/org/geysermc/geyser/platform/fabric/GeyserFabricDumpInfo.java b/bootstrap/fabric/src/main/java/org/geysermc/geyser/platform/fabric/GeyserFabricDumpInfo.java index ee986ee62..75da9125f 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/geyser/platform/fabric/GeyserFabricDumpInfo.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/geyser/platform/fabric/GeyserFabricDumpInfo.java @@ -43,21 +43,27 @@ import java.util.stream.Collectors; @Getter public class GeyserFabricDumpInfo extends BootstrapDumpInfo { - private String platformVersion = null; + private final String platformName; + private String platformVersion; + private final String minecraftVersion; private final EnvType environmentType; @AsteriskSerializer.Asterisk(isIp = true) private final String serverIP; private final int serverPort; + private final boolean onlineMode; private final List mods; public GeyserFabricDumpInfo(MinecraftServer server) { + this.platformName = server.getServerModName(); FabricLoader.getInstance().getModContainer("fabricloader").ifPresent(mod -> this.platformVersion = mod.getMetadata().getVersion().getFriendlyString()); + this.minecraftVersion = server.getServerVersion(); this.environmentType = FabricLoader.getInstance().getEnvironmentType(); this.serverIP = server.getLocalIp() == null ? "unknown" : server.getLocalIp(); this.serverPort = server.getPort(); + this.onlineMode = server.usesAuthentication(); this.mods = new ArrayList<>(); for (ModContainer mod : FabricLoader.getInstance().getAllMods()) { diff --git a/core/src/main/java/org/geysermc/geyser/text/AsteriskSerializer.java b/core/src/main/java/org/geysermc/geyser/text/AsteriskSerializer.java index 702fded92..66b61dbff 100644 --- a/core/src/main/java/org/geysermc/geyser/text/AsteriskSerializer.java +++ b/core/src/main/java/org/geysermc/geyser/text/AsteriskSerializer.java @@ -68,6 +68,11 @@ public class AsteriskSerializer extends StdSerializer implements Context String asterisk; boolean isIp; + @SuppressWarnings("unused") // Used by Jackson for Geyser dumps + public AsteriskSerializer() { + super(Object.class); + } + public AsteriskSerializer(String asterisk, boolean isIp) { super(Object.class); this.asterisk = asterisk;