plugins {
id "com.github.johnrengelman.shadow" version "7.1.2"
}
loom {
forge { mixinConfig "modmcmc-common.mixins.json" mixinConfig "modmcmc.mixins.json" } }
architectury {
platformSetupLoomIde()
forge() neoForge() }
configurations {
common
shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files.
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentForge.extendsFrom common developmentNeoForge.extendsFrom common }
dependencies {
forge "net.minecraftforge:forge:${rootProject.forge_version}" neoForge "net.neoforged:neoforge:${rootProject.neoforge_version}" // Remove the next line if you don't want to depend on the API
modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" modApi "dev.architectury:architectury-neoforge:${rootProject.architectury_version}" common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } shadowCommon(project(path: ":common", configuration: "transformProductionNeoForge")) { transitive = false } }
[[dependencies.modmcmc]] #optional
# the modid of the dependency
modId="forge" #mandatory modId="neoforge" #mandatory # Does this dependency have to exist - if not, ordering below must be specified
mandatory=true #mandatory
# The version range of the dependency
versionRange="[49,)" #mandatory versionRange="[20,)" #mandatory # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
side="BOTH"
// 不要忘了更改软件包名!我在这里没有放出是因为每个人的软件包名都不一样.
@Mod(MODMCMC.MOD_ID)
public class MODMCMCForge { public class MODMCMCNeoForge { public MODMCMCForge() {
// Submit our event bus to let architectury register our content on the right time
// 这行代码貌似在NeoForge中无法使用.
EventBuses.registerModEventBus(MODMCMC.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus()); MODMCMC.init();
}
}
如果你在构建时遇到了Gson的报错(比如这个:Can not set final java.util.Map field net.fabricmc.loom.configuration.providers.minecraft.ManifestVersion.latest to com.google.gson.internal.LinkedTreeMap), 你可以把org.gradle.toolchains.foojay-resolver-convention更新一下(最新版本是个不错的选择awa)
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
modLoader="javafml" #mandatory #modLoader="kotlinforforge" #mandatory ## A version range to match for said mod loader - for regular FML @Mod it will be the forge version
loaderVersion="[49,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.loaderVersion="[4.10,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
然后你的 NeoForge Mod 就支持 Kotlin 了 awa
相应的, 在别人使用你的 Mod 时, 他也需要添加 Kotlin For Forge 作为前置 Mod.
dependencies {
minecraft "com.mojang:minecraft:${rootProjectminecraft_version}"
// The following line declares the mojmap mappings, you mayuse other mappings as well.
// mappings loom.officialMojangMappings()
// The following line declares the yarn mappings you mayselect this one as well.
mappings "net.fabricmc:yarn:1.20.2+build.4:v2"}