Overhauled build.gradle based on Create. Added flywheel as jarInJar, no external dependency anymore. New mappings channel from parchment. Added replace modes: air, air and solid, solid, offhand filtered. Offhand filtering looks in randomizer bag as well. Protecting tile entities by default. Other mods can cancel placement through BlockEvent.OnBlockPlaced, such as FTBChunks. BlockPreviews.drawOutlinesIfNoBlockInHand overhaul.
215 lines
6.3 KiB
Groovy
215 lines
6.3 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url = 'https://maven.minecraftforge.net' }
|
|
mavenCentral()
|
|
jcenter()
|
|
maven { url = 'https://repo.spongepowered.org/repository/maven-public' }
|
|
maven { url = 'https://maven.parchmentmc.org' }
|
|
}
|
|
dependencies {
|
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: "${forgegradle_version}", changing: false
|
|
classpath "org.spongepowered:mixingradle:${mixingradle_version}"
|
|
classpath "org.parchmentmc:librarian:${librarian_version}"
|
|
}
|
|
}
|
|
plugins {
|
|
id 'com.matthewprenger.cursegradle' version "${cursegradle_version}"
|
|
}
|
|
apply plugin: 'net.minecraftforge.gradle'
|
|
apply plugin: 'org.parchmentmc.librarian.forgegradle'
|
|
apply plugin: 'eclipse'
|
|
apply plugin: 'maven-publish'
|
|
apply plugin: 'org.spongepowered.mixin'
|
|
|
|
jarJar.enable()
|
|
|
|
boolean flywheelInWorkspace = findProject(':Flywheel') != null
|
|
|
|
ext.buildNumber = System.getenv('BUILD_NUMBER')
|
|
|
|
version = mod_version
|
|
group = 'nl.requios.effortlessbuilding'
|
|
archivesBaseName = "effortlessbuilding-${artifact_minecraft_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'}"
|
|
minecraft {
|
|
mappings channel: 'parchment', version: "${parchment_version}-${minecraft_version}"
|
|
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
|
|
runs {
|
|
client {
|
|
workingDirectory project.file('run')
|
|
arg '-mixin.config=flywheel.mixins.json'
|
|
//jvmArgs '-XX:+UnlockCommercialFeatures' // uncomment for profiling
|
|
property 'forge.logging.console.level', 'info'
|
|
|
|
mods {
|
|
effortlessbuilding {
|
|
source sourceSets.main
|
|
}
|
|
|
|
if (flywheelInWorkspace) {
|
|
flywheel {
|
|
source project(":Flywheel").sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
server {
|
|
workingDirectory project.file('run/server')
|
|
property 'forge.logging.console.level', 'info'
|
|
mods {
|
|
effortlessbuilding {
|
|
source sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
|
|
data {
|
|
workingDirectory project.file('run')
|
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
|
|
property 'forge.logging.console.level', 'debug'
|
|
args '--mod', 'effortlessbuilding', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources')
|
|
mods {
|
|
effortlessbuilding {
|
|
source sourceSets.main
|
|
}
|
|
|
|
if (flywheelInWorkspace) {
|
|
flywheel {
|
|
source project(":Flywheel").sourceSets.main
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
// Location of the maven that hosts JEI files (and TiC)
|
|
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.k-4u.nl'
|
|
}*/
|
|
maven {
|
|
// Location of the maven for vazkii's mods
|
|
name 'blamejared'
|
|
url 'https://maven.blamejared.com'
|
|
}
|
|
maven {
|
|
// Location of the maven for mixed mappings, Registrate, and Flywheel
|
|
name 'tterrag maven'
|
|
url 'https://maven.tterrag.com'
|
|
}
|
|
maven {
|
|
url 'https://www.cursemaven.com'
|
|
content {
|
|
includeGroup "curse.maven"
|
|
}
|
|
}
|
|
maven {
|
|
//location of the maven for dynamic trees
|
|
url 'https://harleyoconnor.com/maven'
|
|
}
|
|
maven {
|
|
//location of the maven for curios api
|
|
url = "https://maven.theillusivec4.top/"
|
|
}
|
|
maven {
|
|
name = "Modrinth"
|
|
url = "https://api.modrinth.com/maven"
|
|
content {
|
|
includeGroup "maven.modrinth"
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
|
|
|
jarJar(group: 'com.jozufozu.flywheel', name: "flywheel-forge-${flywheel_minecraft_version}", version: '[0.6.8,0.6.9)') {
|
|
jarJar.pin(it, project.flywheel_version)
|
|
}
|
|
|
|
if (flywheelInWorkspace) {
|
|
implementation project(':Flywheel')
|
|
} else {
|
|
implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_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 (System.getProperty('idea.sync.active') != 'true') {
|
|
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
|
|
}
|
|
|
|
compileJava {
|
|
options.compilerArgs = ['-Xdiags:verbose']
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes([
|
|
"Specification-Title": "effortlessbuilding",
|
|
"Specification-Vendor": "requios",
|
|
"Specification-Version": "1",
|
|
"Implementation-Title": project.jar.baseName,
|
|
"Implementation-Version": project.jar.archiveVersion,
|
|
"Implementation-Vendor" :"requios",
|
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
|
])
|
|
}
|
|
}
|
|
|
|
task jarJarRelease {
|
|
doLast {
|
|
tasks.jarJar {
|
|
classifier = ''
|
|
}
|
|
}
|
|
finalizedBy tasks.jarJar
|
|
}
|
|
|
|
java {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
jar.finalizedBy('reobfJar')
|
|
tasks.jarJar.finalizedBy('reobfJarJar')
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifactId = archivesBaseName
|
|
|
|
from components.java
|
|
fg.component(it)
|
|
jarJar.component(it)
|
|
}
|
|
}
|
|
repositories {
|
|
if (project.hasProperty('mavendir')) {
|
|
maven { url mavendir }
|
|
}
|
|
}
|
|
}
|
|
|