Skip to content

Instantly share code, notes, and snippets.

@nanoaquila
Created August 16, 2022 07:47
Show Gist options
  • Save nanoaquila/e4f16ff1ed4702cd22c15af2b30227e0 to your computer and use it in GitHub Desktop.
Save nanoaquila/e4f16ff1ed4702cd22c15af2b30227e0 to your computer and use it in GitHub Desktop.
Messy build script
plugins {
id 'idea'
id 'maven-publish'
id 'net.minecraftforge.gradle' version '5.1.+'
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
}
version = "${mod_version}-${forge_version}"
group = "${maven_group}.${mod_id}"
archivesBaseName = mod_id
minecraft {
mappings channel: mapping_channel , version: mapping_version
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', logging_marker
property 'forge.logging.console.level', logging_level
property 'forge.enabledGameTestNamespaces', mod_id
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
mods {
mod_id {
source sourceSets.main
}
}
}
server {
workingDirectory project.file('run')
property 'forge.logging.markers', logging_marker
property 'forge.logging.console.level', logging_level
property 'forge.enabledGameTestNamespaces', mod_id
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
mods {
mod_id {
source sourceSets.main
}
}
}
data {
workingDirectory project.file('run')
property 'forge.logging.markers', logging_marker
property 'forge.logging.console.level', logging_level
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
mods {
mod_id {
source sourceSets.main
}
}
}
}
}
sourceSets.main.resources { srcDir 'src/generated/resources' }
compileJava {
options.encoding = "UTF-8"
}
processResources {
duplicatesStrategy = DuplicatesStrategy.FAIL
filesMatching("META-INF/mods.toml") {
expand(["version": "${version}"])
}
}
repositories {
// JEI
maven {
url "https://dvs1.progwml6.com/files/maven"
}
//JEI FALLBACKS
maven {
name = "ModMaven"
url = "https://modmaven.dev"
}
maven {
name = "ModMaven"
url = "https://modmaven.k-4u.nl"
}
maven {
url "https://maven.blamejared.com"
}
// JourneyMap API
maven {
name = "JourneyMap (Public)"
url = "https://jm.gserv.me/repository/maven-public/"
}
//CURIOS
maven {
url = "https://maven.theillusivec4.top/"
}
//CURSE
maven {
url "https://cursemaven.com"
content {
includeGroup "curse.maven"
}
}
}
dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
//API
compileOnly fg.deobf(group: 'info.journeymap', name: 'journeymap-api', version: journeymap_version, changing: true)
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
implementation fg.deobf("top.theillusivec4.curios:curios-forge:${minecraft_version}-${curios_version}")
compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${minecraft_version}-${curios_version}:api")
// implementation fg.deobf("curse.maven:${top}")
// implementation fg.deobf("curse.maven:${ctm}")
//QoL helpers
implementation fg.deobf("curse.maven:${catalogue}")
implementation fg.deobf("curse.maven:${configured}")
implementation fg.deobf("curse.maven:${mousetweaks}")
implementation fg.deobf("curse.maven:${shutup}")
implementation fg.deobf("curse.maven:${strip}")
compileOnly fg.deobf("curse.maven:${jade}")
implementation fg.deobf("curse.maven:${jadeapi}")
}
jar {
manifest {
attributes([
"Specification-Title" : mod_id,
"Specification-Vendor" : mod_vendor,
"Specification-Version" : "1",
"Implementation-Title" : project.name,
"Implementation-Version" : project.jar.archiveVersion,
"Implementation-Vendor" : mod_vendor,
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
}
jar.finalizedBy('reobfJar')
publishing {
publications {
mavenJava(MavenPublication) {
artifact jar
}
}
repositories {
maven {
url "file://${projectDir}/mcmodsrepo"
}
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
mapping_channel=parchment
mapping_version=2022.08.14-1.19.2
logging_marker=REGISTRIES
logging_level=debug
mod_id=extremis
mod_vendor=nanoaquila
maven_group=uk.nanoaquila
mod_version=1.0.0-PRE_ALPHA
minecraft_version=1.19.2
forge_version=43.0.8
# Dependencies
jei_version=11.2.0.247
curios_version=5.1.1.0
journeymap_version=1.19-1.8-SNAPSHOT
# Helpers
curios=curios-309927:3924518
journeymap=journeymap-32274:3902437
jei=jei-238222:3928388
top=the-one-probe-245211:3927520
catalogue=catalogue-459701:3873264
configured=configured-457570:3903908
mousetweaks=mouse-tweaks-60089:3871353
shutup=shutup-experimental-settings-407174:3759881
strip=world-stripper-250603:3921630
ctm=ctm-267602:3933537
jade=jade-324717:3903693
jadeapi=jade-324717:3824894
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment