Skip to content

Commit 7b7044e

Browse files
committed
Add Quilt support
1 parent 901289d commit 7b7044e

4 files changed

Lines changed: 14 additions & 5 deletions

File tree

‎README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ dev.faststats.metrics:neoforge:<sdk-version>+mc26.3
3434
Each artifact only declares the Minecraft version it was built for in its `fabric.mod.json`, `mods.toml` or
3535
`neoforge.mods.toml`.
3636

37+
The Fabric artifact also supports Quilt, which loads Fabric mods.
38+
On Quilt it reports Quilt and the Quilt Loader version instead of Fabric.
39+
It needs Quilt Loader 0.30.0 or newer and Fabric API or Quilted Fabric API.
40+
3741
See [CONTRIBUTING.md](CONTRIBUTING.md) for how the version-specific code is organized and how to add a Minecraft
3842
version.
3943

‎fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,24 @@ protected FabricMetrics(final Factory factory, final ModContainer mod) throws Il
1313
this.mod = mod;
1414
}
1515

16-
protected void appendFabricData(final JsonObject metrics, final String serverType) {
16+
protected void appendFabricData(final JsonObject metrics, final boolean client) {
17+
final var loader = isQuilt() ? "Quilt" : "Fabric";
1718
metrics.addProperty("game_version", minecraftVersion());
1819
metrics.addProperty("platform_version", platformVersion());
1920
metrics.addProperty("plugin_version", mod.getMetadata().getVersion().getFriendlyString());
20-
metrics.addProperty("server_type", serverType);
21+
metrics.addProperty("server_type", client ? loader + " Client" : loader);
2122
}
2223

2324
protected static String minecraftVersion() {
2425
return version("minecraft");
2526
}
2627

2728
protected static String platformVersion() {
28-
return version("fabricloader");
29+
return version(isQuilt() ? "quilt_loader" : "fabricloader");
30+
}
31+
32+
private static boolean isQuilt() {
33+
return FabricLoader.getInstance().isModLoaded("quilt_loader");
2934
}
3035

3136
private static String version(final String modId) {

‎fabric/src/main/java/dev/faststats/fabric/FabricMetricsClient.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ public boolean isClientApplication() {
2121
protected void appendDefaultData(final JsonObject metrics) {
2222
metrics.addProperty("online_mode", compatibilityLayer.clientOnlineMode());
2323
metrics.addProperty("player_count", compatibilityLayer.clientPlayerCount());
24-
appendFabricData(metrics, "Fabric Client");
24+
appendFabricData(metrics, true);
2525
}
2626
}

‎fabric/src/main/java/dev/faststats/fabric/FabricMetricsServer.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ final class FabricMetricsServer extends FabricMetrics {
1717
protected void appendDefaultData(final JsonObject metrics) {
1818
metrics.addProperty("online_mode", compatibilityLayer.serverOnlineMode());
1919
metrics.addProperty("player_count", compatibilityLayer.serverPlayerCount());
20-
appendFabricData(metrics, "Fabric");
20+
appendFabricData(metrics, false);
2121
}
2222
}

0 commit comments

Comments
 (0)