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 } } } }