202 lines
5.9 KiB
Groovy
202 lines
5.9 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url = 'https://maven.minecraftforge.net' }
|
|
mavenCentral()
|
|
maven { url = 'https://repo.spongepowered.org/repository/maven-public' }
|
|
maven { url = 'https://maven.parchmentmc.org' }
|
|
}
|
|
dependencies {
|
|
classpath "net.minecraftforge.gradle:ForgeGradle:${forgegradle_version}"
|
|
classpath "org.spongepowered:mixingradle:${mixingradle_version}"
|
|
classpath "org.parchmentmc:librarian:${librarian_version}"
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id "idea"
|
|
id "eclipse"
|
|
id "maven-publish"
|
|
id "net.neoforged.moddev.legacyforge" version "2.0.74"
|
|
id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.8" // https://github.com/JetBrains/gradle-idea-ext-plugin
|
|
}
|
|
|
|
apply from: "./gradle/java.gradle"
|
|
apply from: "gradle/property_loader.gradle"
|
|
|
|
ext.buildNumber = System.getenv('BUILD_NUMBER')
|
|
|
|
group = 'nl.requios.effortlessbuilding'
|
|
base {
|
|
archivesName = "effortlessbuilding-${artifact_minecraft_version}"
|
|
version = mod_version
|
|
}
|
|
|
|
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
|
|
|
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + ' (' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
|
|
|
|
legacyForge {
|
|
version = "$minecraft_version-$forge_version"
|
|
|
|
if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) {
|
|
accessTransformers.from "src/main/resources/META-INF/accesstransformer.cfg"
|
|
}
|
|
|
|
parchment {
|
|
minecraftVersion = minecraft_version
|
|
mappingsVersion = parchment_version
|
|
}
|
|
|
|
runs {
|
|
// applies to all the run configs below
|
|
configureEach {
|
|
systemProperty 'forge.logging.markers', ''
|
|
systemProperty 'forge.logging.console.level', 'info'
|
|
jvmArguments = ["-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition"]
|
|
//jvmArgs("-XX:-OmitStackTraceInFastThrow") // uncomment when you get exceptions with null messages etc
|
|
//jvmArgs '-XX:+UnlockCommercialFeatures' // uncomment for profiling
|
|
|
|
systemProperty 'mixin.debug.export', 'true'
|
|
systemProperty 'mixin.debug.verbose', 'true'
|
|
|
|
programArgument '-mixin.config=ponder.mixins.json'
|
|
}
|
|
|
|
client {
|
|
client()
|
|
|
|
gameDirectory = project.file('run')
|
|
}
|
|
|
|
server {
|
|
server()
|
|
|
|
gameDirectory = project.file('run/server')
|
|
}
|
|
|
|
data {
|
|
data()
|
|
|
|
gameDirectory = project.file('run')
|
|
systemProperty 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
|
|
systemProperty 'forge.logging.console.level', 'debug'
|
|
programArguments.addAll("--mod", mod_id as String, "--all", "--output", file("src/generated/resources/").getAbsolutePath(), "--existing", file("src/main/resources").getAbsolutePath())
|
|
}
|
|
|
|
gameTestServer {
|
|
type = "gameTestServer"
|
|
|
|
gameDirectory = project.file('run/gametest')
|
|
// setForceExit false <- FIXME 1.20
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven { url = "https://maven.createmod.net" } // Ponder, Flywheel
|
|
maven { url = "https://maven.tterrag.com" } // Registrate
|
|
|
|
maven {
|
|
url = 'https://www.cursemaven.com'
|
|
content {
|
|
includeGroup "curse.maven"
|
|
}
|
|
}
|
|
maven {
|
|
name = "Modrinth"
|
|
url = "https://api.modrinth.com/maven"
|
|
content {
|
|
includeGroup "maven.modrinth"
|
|
}
|
|
}
|
|
|
|
mavenLocal()
|
|
flatDir {
|
|
dirs 'libs'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
jarJar("net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}")
|
|
|
|
modCompileOnly("dev.engine-room.flywheel:flywheel-forge-api-${flywheel_minecraft_version}:${flywheel_version}")
|
|
modRuntimeOnly(jarJar("dev.engine-room.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") {
|
|
version {
|
|
strictly "[1.0,2.0)"
|
|
prefer flywheel_version
|
|
}
|
|
})
|
|
modRuntimeOnly("dev.engine-room.vanillin:vanillin-forge-${flywheel_minecraft_version}:${vanillin_version}")
|
|
|
|
modImplementation("net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}")
|
|
|
|
// Prevent Mixin annotation processor from getting into IntelliJ's annotation processor settings
|
|
// This allows 'Settings > Build, Execution, and Deployment > Build Tools > Gradle > Build and run using' set to IntelliJ to work correctly
|
|
if (!Boolean.getBoolean('idea.sync.active')) {
|
|
annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor"
|
|
}
|
|
}
|
|
|
|
sourceSets.main.resources {
|
|
srcDir 'src/generated/resources'
|
|
exclude '.cache/'
|
|
}
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
|
|
}
|
|
|
|
idea {
|
|
module {
|
|
downloadJavadoc = true
|
|
downloadSources = true
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
options.compilerArgs = ['-Xdiags:verbose']
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes([
|
|
"Specification-Title": "effortlessbuilding",
|
|
"Specification-Vendor": "requios",
|
|
"Specification-Version": "1",
|
|
"Implementation-Title": project.name,
|
|
"Implementation-Version": project.jar.archiveVersion,
|
|
"Implementation-Vendor" :"requios",
|
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
|
])
|
|
}
|
|
}
|
|
|
|
task jarJarRelease {
|
|
group = 'jarjar'
|
|
doLast {
|
|
tasks.jarJar {
|
|
classifier = ''
|
|
}
|
|
}
|
|
finalizedBy tasks.jarJar
|
|
}
|
|
|
|
java {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
tasks.build.dependsOn tasks.jarJar
|
|
|
|
project.publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifactId base.archivesName.get()
|
|
from components.java
|
|
|
|
artifact(tasks.jar) {
|
|
classifier = "all"
|
|
}
|
|
}
|
|
}
|
|
}
|