plugins {
id 'com.github.johnrengelman.shadow'
}
architectury {
platformSetupLoomIde()
neoForge()
}
loom {
accessWidenerPath.set(project(":common").loom.accessWidenerPath)
}
configurations {
common {
canBeResolved = true
canBeConsumed = false
}
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentNeoForge.extendsFrom common
// Files in this configuration will be bundled into your mod using the Shadow plugin.
// Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files.
shadowBundle {
canBeResolved = true
canBeConsumed = false
}
}
repositories {
maven {
name = 'NeoForged'
url = 'https://maven.neoforged.net/releases'
}
maven {
url "https://modmaven.dev/"
content {
includeGroup "dev.technici4n"
}
}
}
dependencies {
neoForge "net.neoforged:neoforge:$rootProject.neoforge_version"
// Architectury API. This is optional, and you can comment it out if you don't need it.
modImplementation "dev.architectury:architectury-neoforge:$rootProject.architectury_api_version"
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
shadowBundle project(path: ':common', configuration: 'transformProductionNeoForge')
// forgified fabric api
// modImplementation "org.sinytra.forgified-fabric-api:forgified-fabric-api:0.107.0+2.0.23+1.21.1"
include modApi("dev.technici4n:GrandPower:3.0.2")
// owo lib
modImplementation "io.wispforest:owo-lib-neoforge:0.12.15-beta.9+1.21"
forgeRuntimeLibrary(include(api("io.wispforest:endec:0.1.8")))
forgeRuntimeLibrary(include(api("io.wispforest.endec:netty:0.1.4")))
forgeRuntimeLibrary(include(api("io.wispforest.endec:gson:0.1.5")))
forgeRuntimeLibrary(include(api("io.wispforest.endec:jankson:0.1.5")))
forgeRuntimeLibrary(include(api("blue.endless:jankson:1.2.2")))
// geckolib
modImplementation "software.bernie.geckolib:geckolib-neoforge-1.21.1:4.7.5.1"
// athena (CTM)
modRuntimeOnly "earth.terrarium.athena:athena-neoforge-1.21:4.0.0"
// jade
modImplementation "curse.maven:jade-324717:5846105"
modCompileOnly "me.shedaniel:RoughlyEnoughItems-neoforge:16.0.754"
// recipe viewer runtime
switch (recipe_viewer.toLowerCase(Locale.ROOT)) {
case "emi": modRuntimeOnly "dev.emi:emi-neoforge:${emi_version}"; break
case "rei": modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-neoforge:16.0.754"; break
case "jei": modRuntimeOnly "mezz.jei:jei-1.21.1-neoforge:19.21.0.245"
case "disabled": break
default: println("Unknown recipe viewer specified: ${recipe_viewer}. Must be EMI, REI, JEI, or disabled.")
}
// compat mods for ingame testing
modRuntimeOnly "curse.maven:energized-power-782147:5797585"
modRuntimeOnly "curse.maven:mekanism-268560:5680395"
modRuntimeOnly "curse.maven:applied-energistics-2-223794:6087880"
modRuntimeOnly "curse.maven:spark-361579:5759671"
// create
// modImplementation "net.createmod.ponder:Ponder-NeoForge-${minecraft_version}:1.0.43"
// modImplementation "dev.engine-room.flywheel:flywheel-neoforge-${minecraft_version}:1.0.1-11"
}
processResources {
inputs.property 'version', project.version
filesMatching('META-INF/neoforge.mods.toml') {
expand version: project.version
}
from('src/main/generated')
}
shadowJar {
configurations = [project.configurations.shadowBundle]
archiveClassifier = 'dev-shadow'
}
remapJar {
input.set shadowJar.archiveFile
}
tasks.remapJar {
injectAccessWidener = true
atAccessWideners.add(loom.accessWidenerPath.get().asFile.name)
}
publishMods {
file = remapJar.archiveFile
changelog = file("../CHANGELOG.md").getText()
type = ALPHA
modLoaders.add("neoforge")
modrinth {
accessToken = providers.environmentVariable("MODRINTH_API_KEY")
projectId = "4sYI62kA"
minecraftVersions.add("1.21.1")
minecraftVersions.add("1.21")
requires("owo-lib")
requires("geckolib")
requires("stitch")
requires("architectury-api")
announcementTitle = "Neoforge Version on Modrinth"
}
curseforge {
accessToken = providers.environmentVariable("CURSEFORGE_API_KEY")
projectId = "1030830"
minecraftVersions.add("1.21.1")
minecraftVersions.add("1.21")
requires("owo-lib")
requires("geckolib")
requires("stitch")
requires("architectury-api")
javaVersions.add(JavaVersion.VERSION_21)
clientRequired = true
serverRequired = true
projectSlug = "oritech"
announcementTitle = "Neoforge Version on CurseForge"
}
}