223 lines
No EOL
7.7 KiB
Groovy
223 lines
No EOL
7.7 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url = 'https://maven.minecraftforge.net' }
|
|
maven {
|
|
url = 'https://repo.spongepowered.org/repository/maven-public/'
|
|
content { includeGroup "org.spongepowered" }
|
|
}
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
|
|
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id "java"
|
|
id "maven-publish"
|
|
|
|
id "at.petra-k.PKSubprojPlugin"
|
|
}
|
|
|
|
apply plugin: 'net.minecraftforge.gradle'
|
|
apply plugin: 'org.spongepowered.mixin'
|
|
|
|
// Adds KFF as dependency and Kotlin libs to the runtime classpath
|
|
// If you already know how to add the Kotlin plugin to Gradle, this is the only line you need for KFF
|
|
apply from: "https://raw.githubusercontent.com/thedarkcolour/KotlinForForge/site/thedarkcolour/kotlinforforge/gradle/kff-" +
|
|
"${kotlinForForgeVersion}.gradle"
|
|
|
|
pkSubproj {
|
|
platform "forge"
|
|
curseforgeJar jar.archiveFile
|
|
curseforgeDependencies[]
|
|
modrinthJar jar.archiveFile
|
|
modrinthDependencies[]
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
|
|
maven {
|
|
// location of the maven that hosts JEI files
|
|
name = "Progwml6 maven"
|
|
url = "https://dvs1.progwml6.com/files/maven/"
|
|
}
|
|
maven {
|
|
// location of a maven mirror for JEI files, as a fallback
|
|
name = "ModMaven"
|
|
url = "https://modmaven.dev"
|
|
}
|
|
// caelus elytra
|
|
maven { url = "https://maven.theillusivec4.top" }
|
|
// pehkui
|
|
maven { url = "https://jitpack.io" }
|
|
}
|
|
|
|
dependencies {
|
|
minecraft "net.minecraftforge:forge:${minecraftVersion}-${forgeVersion}"
|
|
compileOnly project(":Common")
|
|
|
|
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
|
|
|
|
compileOnly fg.deobf("at.petra-k.paucal:paucal-forge-$minecraftVersion:$paucalVersion")
|
|
runtimeOnly fg.deobf("at.petra-k.paucal:paucal-forge-$minecraftVersion:$paucalVersion")
|
|
compileOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion")
|
|
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion")
|
|
|
|
// aughh
|
|
testCompileOnly fg.deobf("at.petra-k.paucal:paucal-forge-$minecraftVersion:$paucalVersion")
|
|
testCompileOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion")
|
|
|
|
implementation fg.deobf("top.theillusivec4.caelus:caelus-forge:$caelusVersion")
|
|
|
|
// Optional interop
|
|
|
|
compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion-common-api:$jeiVersion")
|
|
compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion-forge-api:$jeiVersion")
|
|
runtimeOnly fg.deobf("mezz.jei:jei-$minecraftVersion-forge:$jeiVersion")
|
|
|
|
compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:$minecraftVersion-$curiosVersion:api")
|
|
runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:$minecraftVersion-$curiosVersion")
|
|
|
|
api fg.deobf("com.github.Virtuoel:Pehkui:${pehkuiVersion}-${minecraftVersion}-forge")
|
|
}
|
|
|
|
minecraft {
|
|
mappings channel: 'official', version: minecraftVersion
|
|
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
|
|
if (project.hasProperty('forge_ats_enabled') && project.findProperty('forge_ats_enabled').toBoolean()) {
|
|
// This location is hardcoded in Forge and can not be changed.
|
|
// https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123
|
|
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
project.logger.debug('Forge Access Transformers are enabled for this project.')
|
|
}
|
|
|
|
runs {
|
|
client {
|
|
workingDirectory project.file('run')
|
|
ideaModule "${rootProject.name}.${project.name}.main"
|
|
property 'mixin.env.remapRefMap', 'true'
|
|
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
|
|
mods {
|
|
create(modID) {
|
|
source sourceSets.main
|
|
source project(":Common").sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
|
|
server {
|
|
workingDirectory project.file('run')
|
|
ideaModule "${rootProject.name}.${project.name}.main"
|
|
property 'mixin.env.remapRefMap', 'true'
|
|
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
|
|
mods {
|
|
create(modID) {
|
|
source sourceSets.main
|
|
source project(":Common").sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
|
|
// We have to have a dummy data run to be parented from
|
|
data {}
|
|
|
|
xplatDatagen {
|
|
parent minecraft.runs.data
|
|
|
|
workingDirectory project.file('run')
|
|
ideaModule "${rootProject.name}.${project.name}.main"
|
|
args '--mod', modID, '--all', '--output', file('../Common/src/generated/resources/'), '--existing', file('../Common/src/main/resources/')
|
|
property 'mixin.env.remapRefMap', 'true'
|
|
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
|
|
property 'hexcasting.xplat_datagen', 'true'
|
|
mods {
|
|
create(modID) {
|
|
source sourceSets.main
|
|
source project(":Common").sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
|
|
forgeDatagen {
|
|
parent minecraft.runs.data
|
|
|
|
workingDirectory project.file('run')
|
|
ideaModule "${rootProject.name}.${project.name}.main"
|
|
args '--mod', modID, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
|
property 'mixin.env.remapRefMap', 'true'
|
|
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
|
|
property 'hexcasting.forge_datagen', 'true'
|
|
mods {
|
|
create(modID) {
|
|
source sourceSets.main
|
|
source project(":Common").sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
mixin {
|
|
add sourceSets.main, "hexcasting.mixins.refmap.json"
|
|
config "hexplat.mixins.json"
|
|
config "hexcasting_forge.mixins.json"
|
|
}
|
|
|
|
// https://discord.com/channels/313125603924639766/733055378371117127/980968358658838540
|
|
// > It wint generate a refmap if there are jo changes source files
|
|
// > Since the last build
|
|
// > Gradle task execution avoidance breaks it that way
|
|
// > At one point i got it to work reliably bu forcing some specific task to always run i just don't remember the syntax and which task it was
|
|
// > It might have been compileJava
|
|
task invalidateJavaForRefmap {
|
|
doFirst {
|
|
compileJava {
|
|
if (!didWork) {
|
|
outputs.upToDateWhen { false }
|
|
}
|
|
}
|
|
compileKotlin {
|
|
if (!didWork) {
|
|
outputs.upToDateWhen { false }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
source(project(":Common").sourceSets.main.allSource)
|
|
shouldRunAfter(invalidateJavaForRefmap)
|
|
}
|
|
compileKotlin {
|
|
source(project(":Common").sourceSets.main.kotlin)
|
|
shouldRunAfter(invalidateJavaForRefmap)
|
|
}
|
|
compileTestKotlin {
|
|
source(project(":Common").sourceSets.main.kotlin)
|
|
}
|
|
|
|
sourceSets {
|
|
main.resources.srcDirs += ['src/generated/resources', '../Common/src/generated/resources']
|
|
main.kotlin.srcDirs += 'src/main/java'
|
|
test.kotlin.srcDirs += 'src/main/java'
|
|
}
|
|
|
|
jar {
|
|
dependsOn(invalidateJavaForRefmap)
|
|
}
|
|
|
|
processResources {
|
|
from project(":Common").sourceSets.main.resources
|
|
inputs.property "version", project.version
|
|
|
|
filesMatching("mods.toml") {
|
|
expand "version": project.version
|
|
}
|
|
}
|
|
|
|
jar.finalizedBy('reobfJar') |