Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -15,28 +17,23 @@ 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<String> platformVersion() {
return version(isQuilt() ? "quilt_loader" : "fabricloader");
}

private static boolean isQuilt() {
return FabricLoader.getInstance().isModLoaded("quilt_loader");
}

private static String version(final String modId) {
private static Optional<String> version(final String modId) {
return FabricLoader.getInstance()
.getModContainer(modId)
.map(container -> container.getMetadata().getVersion().getFriendlyString())
.orElse("unknown");
.map(container -> container.getMetadata().getVersion().getFriendlyString());
}
}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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<String> modVersion(final String modId) {
return ModList.get().getModContainerById(modId)
.map(container -> container.getModInfo().getVersion().toString())
.orElse("unknown");
.map(container -> container.getModInfo().getVersion().toString());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}
}
Loading