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
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ dev.faststats.metrics:neoforge:<sdk-version>+mc26.3
Each artifact only declares the Minecraft version it was built for in its `fabric.mod.json`, `mods.toml` or
`neoforge.mods.toml`.

The Fabric artifact also supports Quilt, which loads Fabric mods.
On Quilt it reports Quilt and the Quilt Loader version instead of Fabric.
It needs Quilt Loader 0.30.0 or newer and Fabric API or Quilted Fabric API.

See [CONTRIBUTING.md](CONTRIBUTING.md) for how the version-specific code is organized and how to add a Minecraft
version.

Expand Down
11 changes: 8 additions & 3 deletions fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,24 @@ protected FabricMetrics(final Factory factory, final ModContainer mod) throws Il
this.mod = mod;
}

protected void appendFabricData(final JsonObject metrics, final String serverType) {
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());
metrics.addProperty("plugin_version", mod.getMetadata().getVersion().getFriendlyString());
metrics.addProperty("server_type", serverType);
metrics.addProperty("server_type", client ? loader + " Client" : loader);
}

protected static String minecraftVersion() {
return version("minecraft");
}

protected static String platformVersion() {
return version("fabricloader");
return version(isQuilt() ? "quilt_loader" : "fabricloader");
}

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

private static String version(final String modId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ public boolean isClientApplication() {
protected void appendDefaultData(final JsonObject metrics) {
metrics.addProperty("online_mode", compatibilityLayer.clientOnlineMode());
metrics.addProperty("player_count", compatibilityLayer.clientPlayerCount());
appendFabricData(metrics, "Fabric Client");
appendFabricData(metrics, true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ final class FabricMetricsServer extends FabricMetrics {
protected void appendDefaultData(final JsonObject metrics) {
metrics.addProperty("online_mode", compatibilityLayer.serverOnlineMode());
metrics.addProperty("player_count", compatibilityLayer.serverPlayerCount());
appendFabricData(metrics, "Fabric");
appendFabricData(metrics, false);
}
}
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-pre3
version=0.31.0-pre4
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m
org.gradle.configuration-cache=true
Loading