Multiloader III

start loader-specific mod classes
This commit is contained in:
techno-sam
2026-04-05 21:28:29 +02:00
parent 581a236a6b
commit 7c20d34844
15 changed files with 220 additions and 32 deletions
@@ -0,0 +1,15 @@
package io.github.slimeistdev.crystalline_sky.multiloader.neoforge;
import io.github.slimeistdev.crystalline_sky.annotation.multiloader.ImplClass;
import io.github.slimeistdev.crystalline_sky.multiloader.Env;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.fml.loading.FMLEnvironment;
import org.jetbrains.annotations.ApiStatus.Internal;
@ImplClass
public class EnvImpl {
@Internal
public static Env getCurrent() {
return FMLEnvironment.dist == Dist.CLIENT ? Env.CLIENT : Env.SERVER;
}
}
@@ -0,0 +1,9 @@
package io.github.slimeistdev.crystalline_sky.neoforge;
import io.github.slimeistdev.crystalline_sky.CrystallineSkyClient;
public class CrystallineSkyClientImpl {
public static void init() {
CrystallineSkyClient.init();
}
}
@@ -0,0 +1,14 @@
package io.github.slimeistdev.crystalline_sky.neoforge;
import io.github.slimeistdev.crystalline_sky.CrystallineSky;
import io.github.slimeistdev.crystalline_sky.multiloader.Env;
import net.neoforged.fml.common.Mod;
@Mod(CrystallineSky.ID)
public class CrystallineSkyImpl {
public CrystallineSkyImpl() {
CrystallineSky.init();
//noinspection Convert2MethodRef
Env.CLIENT.runIfCurrent(() -> () -> CrystallineSkyClientImpl.init());
}
}
@@ -0,0 +1,33 @@
modLoader = "javafml"
loaderVersion = "[4,)"
license = "${license}"
issueTrackerURL = "${issues}"
[[mods]]
modId = "${modId}"
version = "${version}"
displayName = "${modName}"
description = '''${modDescription}'''
authors = "${members}"
displayURL = "${homepage}"
logoFile = "assets/${modId}/icon.png"
[[mixins]]
config="${modId}.mixins.json"
[[mixins]]
config="${modId}-common.mixins.json"
[[dependencies."${ modId }"]]
modId = "neoforge"
type = "required"
versionRange = "*"
ordering = "NONE"
side = "BOTH"
[[dependencies."${ modId }"]]
modId = "minecraft"
type = "required"
versionRange = "[${mc},)"
ordering = "NONE"
side = "BOTH"
@@ -0,0 +1,19 @@
{
"required": true,
"minVersion": "0.8",
"mixinextras": {
"minVersion": "0.5.0"
},
"package": "io.github.slimeistdev.crystalline_sky.neoforge.mixin",
"plugin": "io.github.slimeistdev.crystalline_sky.mixin.CrystallineSkyMixinPlugin",
"compatibilityLevel": "JAVA_21",
"mixins": [
],
"client": [
],
"server": [
],
"injectors": {
"defaultRequire": 1
}
}