apply plugin: 'java' apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'org.spongepowered.mixin' apply plugin: 'maven-publish' apply plugin: 'me.hypherionmc.modutils.modpublisher' apply plugin: 'com.github.johnrengelman.shadow' archivesBaseName = "${mod_name}-forge-${minecraft_version}" mixin { add sourceSets.main, "${mod_id}.refmap.json" config "${mod_id}.mixins.json" config "${mod_id}.forge.mixins.json" } minecraft { mappings channel: 'official', version: minecraft_version if (project.hasProperty('forge_ats_enabled') && project.findProperty('forge_ats_enabled').toBoolean()) { accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') project.logger.debug('Forge Access Transformers are enabled for this project.') } runs { client { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" taskName 'Client' args "-mixin.config=${mod_id}.mixins.json", "-mixin.config=${mod_id}.forge.mixins.json" mods { modClientRun { source sourceSets.main source project(":Common").sourceSets.main } } } server { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" taskName 'Server' args "-mixin.config=${mod_id}.mixins.json", "-mixin.config=${mod_id}.forge.mixins.json" mods { modServerRun { source sourceSets.main source project(":Common").sourceSets.main } } } data { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') taskName 'Data' args "-mixin.config=${mod_id}.mixins.json", "-mixin.config=${mod_id}.forge.mixins.json" mods { modDataRun { source sourceSets.main source project(":Common").sourceSets.main } } } } } sourceSets.main.resources.srcDir 'src/generated/resources' configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" compileOnly project(":Common") annotationProcessor 'org.spongepowered:mixin:0.8.4-SNAPSHOT:processor' shade "me.hypherionmc.moon-config:core:${moon_config}" shade "me.hypherionmc.moon-config:toml:${moon_config}" shade "com.hypherionmc:rpcsdk:1.0" } tasks.withType(JavaCompile) { source(project(":Common").sourceSets.main.allSource) } processResources { from project(":Common").sourceSets.main.resources filesMatching('*.mixins.json') { expand "refmap_target": "${mod_id}." } } /** * Shadowjar Config */ shadowJar { configurations = [project.configurations.shade] dependencies { relocate 'me.hypherionmc.moonconfig', 'shadow.hypherionmc.moonconfig' } setArchiveClassifier('') } assemble.dependsOn(shadowJar) reobf { shadowJar {} } //reg.configureJarTask(shadowJar) /** * Publishing Config */ publishing { publications { mavenJava(MavenPublication) { groupId project.group artifactId project.archivesBaseName version project.version artifact shadowJar pom.withXml { Node pomNode = asNode() pomNode.dependencies.'*'.findAll() { it.artifactId.text() == 'regutils-joined-fabric' || it.artifactId.text() == 'core' || it.artifactId.text() == 'toml' }.each() { it.parent().remove(it) } } } } repositories { maven { url "https://maven.firstdark.dev/" + (project.release ? "releases" : "snapshots") credentials { username System.getenv("MAVEN_USER") password System.getenv("MAVEN_PASS") } } } } publisher { apiKeys { modrinth = System.getenv("MODRINTH_TOKEN") curseforge = System.getenv("CURSE_TOKEN") } curseID = curse_id modrinthID = modrinth_id versionType = "release" changelog = rootProject.file("changelog-forge.md") version = "${minecraft_version}-${project.version}" displayName = "[FORGE 1.20.x] CraterLib - ${project.version}" gameVersions = ["1.20", "1.20.1"] loaders = ["forge"] artifact = jar } publishMod.dependsOn(build) jar.finalizedBy('reobfJar')