Skip to content
Closed
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
10 changes: 3 additions & 7 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,12 @@ val javaVersionsOverride = mapOf(
":bukkit:example-plugin" to 21,
":fabric" to 25,
":fabric:example-mod" to 25,
":forge" to 21,
":forge:example-mod" to 21,
":hytale" to 25,
":hytale:example-plugin" to 25,
":minestom" to 25,
":minestom:example-server" to 25,
":neoforge" to 21,
":neoforge:example-mod" to 21,
":quilt" to 25,
":quilt:example-mod" to 25,
":neoforge" to 25,
":neoforge:example-mod" to 25,
":velocity" to 21,
":velocity:example-plugin" to 21
)
Expand All @@ -31,7 +27,7 @@ subprojects {

val example = project.name.startsWith("example")
if (example) {
if (project.path != ":fabric:example-mod") {
if (project.path != ":fabric:example-mod" && project.path != ":neoforge:example-mod") {
apply { plugin("com.gradleup.shadow") }
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ private FabricContext(final Factory factory, final String modId, @Token final St
switch (FabricLoader.getInstance().getEnvironmentType()) {
case CLIENT -> {
ready();
ClientLifecycleEvents.CLIENT_STARTED.register(client -> shutdown());
ClientLifecycleEvents.CLIENT_STOPPING.register(client -> shutdown());
}
case SERVER -> {
ServerLifecycleEvents.SERVER_STARTED.register(server -> ready());
Expand Down
11 changes: 10 additions & 1 deletion fabric/src/main/java/dev/faststats/fabric/FabricMetrics.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,22 @@ protected FabricMetrics(final Factory factory, final ModContainer mod) throws Il

protected void appendFabricData(final JsonObject metrics, final String serverType) {
metrics.addProperty("minecraft_version", minecraftVersion());
metrics.addProperty("platform_version", platformVersion());
metrics.addProperty("plugin_version", mod.getMetadata().getVersion().getFriendlyString());
metrics.addProperty("server_type", serverType);
}

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

protected static String platformVersion() {
return version("fabricloader");
}

private static String version(final String modId) {
return FabricLoader.getInstance()
.getModContainer("minecraft")
.getModContainer(modId)
.map(container -> container.getMetadata().getVersion().getFriendlyString())
.orElse("unknown");
}
Expand Down
13 changes: 0 additions & 13 deletions forge/build.gradle.kts

This file was deleted.

18 changes: 0 additions & 18 deletions forge/example-mod/build.gradle.kts

This file was deleted.

30 changes: 0 additions & 30 deletions forge/example-mod/src/main/java/com/example/ExampleMod.java

This file was deleted.

10 changes: 0 additions & 10 deletions forge/example-mod/src/main/resources/META-INF/mods.toml

This file was deleted.

85 changes: 0 additions & 85 deletions forge/src/main/java/dev/faststats/forge/ForgeContext.java

This file was deleted.

41 changes: 0 additions & 41 deletions forge/src/main/java/dev/faststats/forge/ForgeMetrics.java

This file was deleted.

15 changes: 0 additions & 15 deletions forge/src/main/java/module-info.java

This file was deleted.

2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
version=0.26.1
version=0.26.2
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m
15 changes: 11 additions & 4 deletions neoforge/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
val moduleName by extra("dev.faststats.neoforge")

repositories {
maven("https://maven.neoforged.net/releases")
maven("https://libraries.minecraft.net/")
plugins {
id("net.neoforged.moddev") version "2.0.141"
}

neoForge {
version = "26.1.2.76"
}

configurations.configureEach {
resolutionStrategy.force("com.google.code.gson:gson:2.13.2")
}

dependencies {
api(project(":core"))
implementation(project(":config"))
compileOnly("net.neoforged.fancymodloader:loader:10.0.36")
compileOnly("net.neoforged:bus:8.0.5")
}
14 changes: 10 additions & 4 deletions neoforge/example-mod/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
repositories {
maven("https://maven.neoforged.net/releases")
maven("https://libraries.minecraft.net/")
plugins {
id("net.neoforged.moddev") version "2.0.141"
}

neoForge {
version = "26.1.2.76"
}

configurations.configureEach {
resolutionStrategy.force("com.google.code.gson:gson:2.13.2")
}

dependencies {
implementation(project(":neoforge"))
compileOnly("net.neoforged.fancymodloader:loader:10.0.36")
}

tasks.jar {
Expand Down
27 changes: 23 additions & 4 deletions neoforge/src/main/java/dev/faststats/neoforge/NeoForgeContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@

import dev.faststats.Metrics;
import dev.faststats.SimpleContext;
import dev.faststats.SimpleMetrics;
import dev.faststats.Token;
import dev.faststats.config.SimpleConfig;
import net.neoforged.fml.ModList;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.fml.loading.FMLPaths;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.server.ServerStartedEvent;
import net.neoforged.neoforge.event.server.ServerStoppingEvent;
import net.neoforged.neoforgespi.language.IModInfo;
import org.jetbrains.annotations.Contract;

Expand All @@ -19,7 +24,7 @@
/**
* NeoForge FastStats context.
*
* @since 0.25.2
* @since 0.26.2
*/
public final class NeoForgeContext extends SimpleContext {
private final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(runnable -> {
Expand All @@ -32,17 +37,31 @@ public final class NeoForgeContext extends SimpleContext {

private NeoForgeContext(final Factory factory, final String modId, @Token final String token) {
super(factory, SimpleConfig.read(FMLPaths.CONFIGDIR.get().resolve("faststats").resolve("config.properties")), "neoforge", token);
this.mod = ModList.get().getModFileById(modId).getMods().stream().filter(mod -> mod.getModId().equals(modId)).findFirst().orElseThrow(() -> {
this.mod = ModList.get().getModContainerById(modId).map(container -> container.getModInfo()).orElseThrow(() -> {
return new IllegalArgumentException("Mod not found: " + modId);
});
initializeServices(factory);
switch (FMLEnvironment.getDist()) {
case CLIENT -> ready();
case DEDICATED_SERVER -> {
NeoForge.EVENT_BUS.addListener((final ServerStartedEvent event) -> ready());
NeoForge.EVENT_BUS.addListener((final ServerStoppingEvent event) -> shutdown());
}
}
}

@Override
@Contract(value = " -> new", pure = true)
protected Metrics.Factory metricsFactory() {
// todo: proper client/server support
return new NeoForgeMetrics.Factory(this, mod);
return new SimpleMetrics.Factory(this) {
@Override
public Metrics create() throws IllegalStateException {
return switch (FMLEnvironment.getDist()) {
case CLIENT -> new NeoForgeMetricsClient(this, mod);
case DEDICATED_SERVER -> new NeoForgeMetricsServer(this, mod);
};
}
};
}

@Override
Expand Down
Loading