Files
CraterLib/Forge/build.gradle

184 lines
5.5 KiB
Groovy
Raw Normal View History

2022-05-12 00:18:53 +02:00
buildscript {
repositories {
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
mavenCentral()
}
dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
}
}
plugins {
id 'com.github.johnrengelman.shadow' version '7.0.0'
2023-06-08 19:13:41 +02:00
id "me.hypherionmc.modutils.modpublisher" version "1.0.16"
}
2022-05-12 00:18:53 +02:00
apply plugin: 'java'
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'eclipse'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'maven-publish'
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()) {
// This location is hardcoded in Forge and can not be changed.
// https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123
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'
2023-06-08 19:13:41 +02:00
configurations {
shade
implementation.extendsFrom shade
}
2022-05-12 00:18:53 +02:00
dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
compileOnly project(":Common")
annotationProcessor 'org.spongepowered:mixin:0.8.4-SNAPSHOT:processor'
2023-06-08 19:13:41 +02:00
shade "me.hypherionmc.moon-config:core:${moon_config}"
shade "me.hypherionmc.moon-config:toml:${moon_config}"
2022-05-12 00:18:53 +02:00
}
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 {
2023-06-08 19:13:41 +02:00
configurations = [project.configurations.shade]
dependencies {
relocate 'me.hypherionmc.moonconfig', 'shadow.hypherionmc.moonconfig'
}
2023-06-08 19:19:52 +02:00
classifier = ''
}
reobf {
shadowJar {}
}
2022-05-12 00:18:53 +02:00
build.dependsOn reobfShadowJar
reg.configureJarTask(shadowJar)
2022-05-12 00:18:53 +02:00
jar.finalizedBy('reobfJar')
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)
}
}
2022-05-12 00:18:53 +02:00
}
}
repositories {
maven {
2023-05-28 21:58:21 +02:00
url "https://maven.firstdarkdev.xyz/" + (project.release ? "releases" : "snapshots")
credentials {
username System.getenv("MAVEN_USER")
password System.getenv("MAVEN_PASS")
}
2022-05-12 00:18:53 +02:00
}
}
}
2022-05-12 00:20:18 +02:00
task copyAllArtifacts(type: Copy) {
from "$buildDir/libs"
into "$rootDir/artifacts"
include("*.jar")
}
build.finalizedBy(copyAllArtifacts)
2023-06-08 19:13:41 +02:00
publisher {
apiKeys {
modrinth = System.getenv("MODRINTH_TOKEN")
curseforge = System.getenv("CURSE_TOKEN")
}
curseID = curse_id
modrinthID = modrinth_id
versionType = "release"
2023-06-10 13:25:23 +02:00
changelog = rootProject.file("changelog-forge.md")
2023-06-08 19:13:41 +02:00
version = "${minecraft_version}-${project.version}"
displayName = "[FORGE 1.20.1] CraterLib - ${project.version}"
gameVersions = ["1.20.1"]
2023-06-08 19:13:41 +02:00
loaders = ["forge"]
artifact = jar
}
publishMod.dependsOn(build)