plugins { id 'net.neoforged.gradle.userdev' version '7.0.+' id 'com.matthewprenger.cursegradle' version "${cursegradle_version}" id 'com.github.johnrengelman.shadow' version "${shadow_version}" id 'maven-publish' } var mod_version = mcef_version archivesBaseName = project.archives_base_name version = mod_version group = mod_packagename java.toolchain.languageVersion = JavaLanguageVersion.of(java_version as int) runs { client { workingDirectory project.file('run') } server { workingDirectory project.file('run/server') } } /* Add the following to ~/.gradle/gradle.properties systemProp.org.gradle.s3.endpoint=https:// MCEF_S3_PUBLISH_URL_SNAPSHOT=s3:///repositories/snapshots MCEF_S3_PUBLISH_URL_RELEASE=s3:///repositories/releases MCEF_S3_PUBLISH_ACCESS_KEY= MCEF_S3_PUBLISH_SECRET_KEY= */ publishing { repositories { maven { url ((mcef_version.toString().endsWith("SNAPSHOT")) ? findProperty('MCEF_S3_PUBLISH_URL_SNAPSHOT') : findProperty('MCEF_S3_PUBLISH_URL_RELEASE')) credentials(AwsCredentials) { accessKey = findProperty('MCEF_S3_PUBLISH_ACCESS_KEY') secretKey = findProperty('MCEF_S3_PUBLISH_SECRET_KEY') } } } publications { mavenJava(MavenPublication) { from components.java groupId = 'com.cinemamod' artifactId = 'mcef-neoforge' version = mcef_version } } } sourceSets.main.resources { srcDir 'src/generated/resources' } configurations { shadowMc.extendsFrom minecraftLibrary } tasks.register('prepareWorkspace') { } dependencies { implementation "net.neoforged:neoforge:${neoforge_version}" implementation(project(':common')) { transitive false } } tasks.register('generateJava', Copy) { from project(':common').file('src/template/java') into "${buildDir}/generated/java" expand 'compatibility_version': mod_compatibility_version } sourceSets.main.java { srcDir "${buildDir}/generated/java" } compileJava.dependsOn generateJava processResources { filesMatching('**/*.toml') { expand 'mod_id': mod_id, 'mod_version': mod_version, 'mod_name': mod_name, 'neoforge_version': neoforge_version, 'loader_version': loader_version, 'neoforge_dependency': 'neoforge_dependency', 'minecraft_version': minecraft_version } from("${project(':common').projectDir}/src/main/resources") } tasks.withType(JavaCompile).configureEach { source(project(':common').sourceSets.main.allSource) source(project(':common').sourceSets.jcef.allSource) } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE manifest { attributes(['Specification-Title' : mod_name, 'Specification-Vendor' : mod_vendor, 'Specification-Version' : "1", 'Implementation-Title' : mod_name, 'Implementation-Version' : mod_version, 'Implementation-Vendor' : mod_vendor, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), 'java-cef-commit' : project.parent.getCheckedOutGitCommitHash(project.parent) ]) } from configurations.shadow.collect { it.isDirectory() ? it : zipTree(it) } } curseforge { apiKey = file("${rootDir}/curseforge_api_key.txt").exists() ? file("${rootDir}/curseforge_api_key.txt").text.trim() : '' project { id = curse_id releaseType = release_type addGameVersion minecraft_version addGameVersion 'NeoForge' addGameVersion "Java ${java_version}" mainArtifact(jar) { displayName = "[NEOFORGE][${minecraft_version}] ${mod_name} ${mod_version}" } } } shadowJar { configurations = [project.configurations.shadowMc] archiveClassifier = '' }