229 lines
7.2 KiB
Groovy
Executable File
229 lines
7.2 KiB
Groovy
Executable File
buildscript {
|
|
repositories {
|
|
mavenLocal()
|
|
maven { url = 'https://maven.minecraftforge.net' }
|
|
mavenCentral()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
|
|
}
|
|
}
|
|
|
|
apply plugin: 'net.minecraftforge.gradle'
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'maven-publish'
|
|
|
|
repositories {
|
|
maven {
|
|
name 'DVS1 Maven FS'
|
|
url 'https://dvs1.progwml6.com/files/maven'
|
|
}
|
|
}
|
|
|
|
group = "dev.ubujira.ironbarrels"
|
|
|
|
// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17.
|
|
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
|
|
|
minecraft {
|
|
mappings channel: 'official', version: mappings_version
|
|
|
|
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
|
|
runs {
|
|
client {
|
|
workingDirectory project.file('run')
|
|
|
|
// Recommended logging data for a userdev environment
|
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP,CORE'
|
|
// property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP,CORE' enable if you want spam from the scanner.
|
|
|
|
// Recommended logging level for the console
|
|
property 'forge.logging.console.level', 'debug'
|
|
|
|
mods {
|
|
ironchest {
|
|
source sourceSets.main
|
|
}
|
|
}
|
|
|
|
//The below if statements are to add args to your gradle.properties file in user home
|
|
// (DO NOT add them directly to the gradle.properties file for this project)
|
|
// Setting the below properties allows use of your normal Minecraft account in the
|
|
// dev environment including having your skin load. Each property also has a comment
|
|
// explaining what information to set the value to/format it expects
|
|
// One thing to note is because of the caching that goes on, after changing these
|
|
// variables, you need to refresh the project and rerun genIntellijRuns/genEclipseRuns
|
|
if (project.hasProperty('mc_uuid')) {
|
|
//Your uuid without any dashes in the middle
|
|
args '--uuid', project.getProperty('mc_uuid')
|
|
}
|
|
if (project.hasProperty('mc_username')) {
|
|
//Your username/display name, this is the name that shows up in chat
|
|
// Note: This is not your email, even if you have a Mojang account
|
|
args '--username', project.getProperty('mc_username')
|
|
}
|
|
if (project.hasProperty('mc_accessToken')) {
|
|
//Your access token, you can find it in your '.minecraft/launcher_profiles.json' file
|
|
args '--accessToken', project.getProperty('mc_accessToken')
|
|
}
|
|
}
|
|
|
|
server {
|
|
workingDirectory project.file('run')
|
|
|
|
// Recommended logging data for a userdev environment
|
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP,CORE'
|
|
// property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP,CORE' enable if you want spam from the scanner.
|
|
|
|
// Recommended logging level for the console
|
|
property 'forge.logging.console.level', 'debug'
|
|
|
|
mods {
|
|
ironchest {
|
|
source sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
|
|
data {
|
|
workingDirectory project.file('run')
|
|
|
|
// Recommended logging data for a userdev environment
|
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP,CORE'
|
|
// property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP,CORE' enable if you want spam from the scanner.
|
|
|
|
// Recommended logging level for the console
|
|
property 'forge.logging.console.level', 'debug'
|
|
|
|
args '--mod', 'ironchest', '--all', '--output', file('src/generated/resources/')
|
|
|
|
mods {
|
|
ironchest {
|
|
source sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task buildInfo {
|
|
def cmd = "git rev-parse --short HEAD"
|
|
def proc = cmd.execute()
|
|
proc.waitFor()
|
|
if (proc.exitValue() == 0) {
|
|
ext.revision = proc.text.trim()
|
|
} else {
|
|
ext.revision = "GITBORK"
|
|
}
|
|
|
|
if (System.getenv().BUILD_NUMBER != null) {
|
|
ext.buildNum = System.getenv().BUILD_NUMBER
|
|
} else {
|
|
ext.buildNum = "DEV.${project.buildInfo.revision}"
|
|
}
|
|
}
|
|
|
|
version = "${minecraft_version}-${mod_version}.${project.buildInfo.buildNum}"
|
|
|
|
sourceSets {
|
|
main {
|
|
resources {
|
|
srcDirs "src/generated/resources"
|
|
//But exclude the cache of the generated data from what gets built
|
|
exclude '.cache'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
minecraft 'net.minecraftforge:forge:' + minecraft_version + '-' + forge_version
|
|
|
|
// compile against the JEI API but do not include it at runtime
|
|
//compileOnly fg.deobf("mezz.jei:jei-${jei_version}:api")
|
|
// at runtime, use the full JEI jar
|
|
//runtimeOnly fg.deobf("mezz.jei:jei-${jei_version}")
|
|
}
|
|
|
|
def modsTomlSpec = copySpec{
|
|
from(sourceSets.main.resources) {
|
|
include 'META-INF/mods.toml'
|
|
expand 'version': project.version,
|
|
'loader_range': loader_range,
|
|
'minecraft_range': minecraft_range,
|
|
'forge_range': forge_range
|
|
}
|
|
}
|
|
|
|
// need to copy into each build directory, unfortunately does not seem easy to do this automatically
|
|
def buildPaths = [
|
|
"$rootDir/out/production/resources", // IDEA
|
|
"$rootDir/bin", // Eclipse
|
|
]
|
|
|
|
// task to add mods.toml to all relevant folders
|
|
task replaceResources {
|
|
// copy for gradle
|
|
copy {
|
|
outputs.upToDateWhen { false }
|
|
with modsTomlSpec
|
|
into processResources.destinationDir
|
|
}
|
|
// copy for IDEs
|
|
buildPaths.each { path ->
|
|
if (new File(path).exists()) {
|
|
copy {
|
|
outputs.upToDateWhen { false }
|
|
with modsTomlSpec
|
|
into path
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
processResources {
|
|
exclude 'META-INF/mods.toml'
|
|
finalizedBy replaceResources
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes([
|
|
"Specification-Title" : "Iron Barrels",
|
|
"Specification-Vendor" : "Progwml6, Ubujira",
|
|
"Specification-Version" : "1", // We are version 1 of ourselves
|
|
"Implementation-Title" : project.name,
|
|
"Implementation-Version" : "${version}",
|
|
"Implementation-Vendor" : "Progwml6, Ubujira",
|
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
|
])
|
|
}
|
|
}
|
|
|
|
jar.finalizedBy('reobfJar')
|
|
|
|
task sourcesJar(type: Jar) {
|
|
from sourceSets.main.allJava
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifact jar
|
|
artifact sourcesJar
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
if (project.hasProperty('DEPLOY_DIR')) {
|
|
maven { url DEPLOY_DIR }
|
|
}
|
|
}
|
|
}
|