- fix: NullPointerException when the config class of mod updated

- alter: better test code in `common/src/test`, `neoforge/src/test` and `fabric/src/test`, run `Test Minecraft Client(:fabric)` or `Test Minecraft Client(:neoforge)` for testing
This commit is contained in:
Jaffe2718
2025-09-11 11:48:26 +08:00
parent 78c462dc1c
commit c775a9d221
18 changed files with 167 additions and 62 deletions

View File

@@ -11,7 +11,27 @@ architectury {
fabric()
}
sourceSets {
test {
compileClasspath += main.compileClasspath
runtimeClasspath += main.runtimeClasspath
java {
srcDirs.add('src/test/java' as File)
}
resources {
srcDirs.add('src/test/resources' as File)
}
}
}
loom {
runs {
testClient {
client()
configName = "Test Minecraft Client"
source sourceSets.test
}
}
}
configurations {
@@ -27,10 +47,12 @@ configurations {
dependencies {
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
modCompileOnly ("com.terraformersmc:modmenu:${rootProject.mod_menu_version}")
modCompileOnly("com.terraformersmc:modmenu:${rootProject.mod_menu_version}")
common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false }
testImplementation common(project(path: ':common', configuration: 'testOutput'))
}
processResources {
@@ -41,6 +63,14 @@ processResources {
}
}
processTestResources {
inputs.property "version", rootProject.version
filesMatching("fabric.mod.json") {
expand "version": rootProject.version
}
}
shadowJar {
exclude "architectury.common.json"
@@ -71,7 +101,7 @@ unifiedPublishing {
releaseType = "$project.release_type"
changelog = releaseChangelog()
gameVersions = []
gameLoaders = ["fabric","quilt"]
gameLoaders = ["fabric", "quilt"]
mainPublication remapJar
relations {
depends {

View File

@@ -0,0 +1,12 @@
package eu.midnightdust.test.fabric;
import eu.midnightdust.test.config.MidnightConfigExample;
import eu.midnightdust.lib.config.MidnightConfig;
import net.fabricmc.api.ModInitializer;
public class MLExampleFabric implements ModInitializer {
@Override
public void onInitialize() {
MidnightConfig.init("modid", MidnightConfigExample.class);
}
}

View File

@@ -0,0 +1,23 @@
{
"schemaVersion": 1,
"id": "modid",
"version": "${version}",
"name": "MidnightLib Test Mod",
"description": "Example Mod for Team MidnightDust's mods.",
"authors": [ "MidnightDust" ],
"license": "CC0",
"icon": "assets/midnightlib/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"eu.midnightdust.test.fabric.MLExampleFabric"
]
},
"depends": {
"fabric-resource-loader-v0": "*",
"midnightlib": ">=1.6.0"
}
}