diff --git a/fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java b/fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java index 16184912..00e85d37 100644 --- a/fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java +++ b/fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java @@ -5,6 +5,8 @@ import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; +import java.util.Optional; + abstract class FabricMetrics extends SimpleMetrics { protected final ModContainer mod; @@ -15,17 +17,13 @@ protected FabricMetrics(final Factory factory, final ModContainer mod) throws Il protected void appendFabricData(final JsonObject metrics, final boolean client) { final var loader = isQuilt() ? "Quilt" : "Fabric"; - metrics.addProperty("game_version", minecraftVersion()); - metrics.addProperty("platform_version", platformVersion()); + version("minecraft").ifPresent(s -> metrics.addProperty("game_version", s)); + platformVersion().ifPresent(s -> metrics.addProperty("platform_version", s)); metrics.addProperty("plugin_version", mod.getMetadata().getVersion().getFriendlyString()); metrics.addProperty("server_type", client ? loader + " Client" : loader); } - protected static String minecraftVersion() { - return version("minecraft"); - } - - protected static String platformVersion() { + protected static Optional platformVersion() { return version(isQuilt() ? "quilt_loader" : "fabricloader"); } @@ -33,10 +31,9 @@ private static boolean isQuilt() { return FabricLoader.getInstance().isModLoaded("quilt_loader"); } - private static String version(final String modId) { + private static Optional version(final String modId) { return FabricLoader.getInstance() .getModContainer(modId) - .map(container -> container.getMetadata().getVersion().getFriendlyString()) - .orElse("unknown"); + .map(container -> container.getMetadata().getVersion().getFriendlyString()); } } diff --git a/gradle.properties b/gradle.properties index b76ad973..fc6a799a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ -version=0.31.0-pre4 +version=0.31.0 org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m org.gradle.configuration-cache=true diff --git a/neoforge/src/main/java/dev/faststats/neoforge/NeoForgeMetrics.java b/neoforge/src/main/java/dev/faststats/neoforge/NeoForgeMetrics.java index 3a5f60ad..b185aa07 100644 --- a/neoforge/src/main/java/dev/faststats/neoforge/NeoForgeMetrics.java +++ b/neoforge/src/main/java/dev/faststats/neoforge/NeoForgeMetrics.java @@ -5,6 +5,8 @@ import net.neoforged.fml.ModList; import net.neoforged.neoforgespi.language.IModInfo; +import java.util.Optional; + abstract class NeoForgeMetrics extends SimpleMetrics { protected final IModInfo mod; @@ -14,15 +16,14 @@ protected NeoForgeMetrics(final Factory factory, final IModInfo mod) throws Ille } protected void appendNeoForgeData(final JsonObject metrics, final String serverType) { - metrics.addProperty("game_version", modVersion("minecraft")); - metrics.addProperty("platform_version", modVersion("neoforge")); + modVersion("minecraft").ifPresent(s -> metrics.addProperty("game_version", s)); + modVersion("neoforge").ifPresent(s -> metrics.addProperty("platform_version", s)); metrics.addProperty("plugin_version", mod.getVersion().toString()); metrics.addProperty("server_type", serverType); } - private static String modVersion(final String modId) { + private static Optional modVersion(final String modId) { return ModList.get().getModContainerById(modId) - .map(container -> container.getModInfo().getVersion().toString()) - .orElse("unknown"); + .map(container -> container.getModInfo().getVersion().toString()); } } diff --git a/velocity/src/main/java/dev/faststats/velocity/VelocityMetricsImpl.java b/velocity/src/main/java/dev/faststats/velocity/VelocityMetricsImpl.java index 70fa81b5..15825a3f 100644 --- a/velocity/src/main/java/dev/faststats/velocity/VelocityMetricsImpl.java +++ b/velocity/src/main/java/dev/faststats/velocity/VelocityMetricsImpl.java @@ -19,11 +19,10 @@ final class VelocityMetricsImpl extends SimpleMetrics { @Override protected void appendDefaultData(final JsonObject metrics) { - final var pluginVersion = plugin.getDescription().getVersion().orElse("unknown"); metrics.addProperty("online_mode", server.getConfiguration().isOnlineMode()); metrics.addProperty("platform_version", server.getVersion().getVersion()); metrics.addProperty("player_count", server.getPlayerCount()); - metrics.addProperty("plugin_version", pluginVersion); + plugin.getDescription().getVersion().ifPresent(s -> metrics.addProperty("plugin_version", s)); metrics.addProperty("server_type", server.getVersion().getName()); } }