DIsc_Jockey_revive/common.gradle
2025-07-17 09:40:22 +08:00

175 lines
5.1 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

apply plugin: 'maven-publish'
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'fabric-loom'
apply plugin: 'com.replaymod.preprocess'
int mcVersion = project.mcVersion
repositories {
maven {
url 'https://maven.fabricmc.net/' // loom
}
maven {
url 'https://masa.dy.fi/maven' // masa随便加的
}
maven {
url 'https://maven.fallenbreath.me/releases' // preprocessor
}
maven {
url 'https://jitpack.io' // preprocessor
}
maven {
url 'https://www.cursemaven.com' // curseforge随便加的
}
maven {
url "https://maven.shedaniel.me/" // cloth config
}
maven {
url "https://maven.terraformersmc.com/" // modmenu
}
}
dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}" // 从子项目
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" // 从子项目
modImplementation "net.fabricmc:fabric-loader:${rootProject.loader_version}" // 从根项目
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
include modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
modImplementation "me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}"
// modCompileOnly files("${rootProject.projectDir}/libs/modmenu-13.0.3.jar")
modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
// modImplementation files("${rootProject.projectDir}/libs/LibGui-12.0.1+1.21.2.jar")
}
String MIXIN_CONFIG_PATH = 'disc_jockey.mixins.json' // mixin
JavaVersion JAVA_COMPATIBILITY // java自动
if (mcVersion >= 12100) {
JAVA_COMPATIBILITY = JavaVersion.VERSION_21
} else if (mcVersion >= 11800) {
JAVA_COMPATIBILITY = JavaVersion.VERSION_17
} else if (mcVersion >= 11700) {
JAVA_COMPATIBILITY = JavaVersion.VERSION_16
} else {
JAVA_COMPATIBILITY = JavaVersion.VERSION_1_8
}
JavaVersion MIXIN_COMPATIBILITY_LEVEL = JAVA_COMPATIBILITY
loom {
def commonVmArgs = ['-Dmixin.debug.export=true']
runConfigs.configureEach {
runDir '../../run'
vmArgs commonVmArgs
ideConfigGenerated true
}
runs {
def auditVmArgs = [*commonVmArgs, '-Ddisc_jockey_revive.mixin_audit=true']
serverMixinAudit {
server()
vmArgs auditVmArgs
ideConfigGenerated false
}
clientMixinAudit {
client()
vmArgs auditVmArgs
ideConfigGenerated false
}
}
}
// 打包胖子
shadowJar {
configurations = [project.configurations.shadow]
exclude("META-INF")
archiveClassifier.set('shadow')
}
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
tasks.withType(ShadowJar).configureEach {
enableRelocation true
relocationPrefix 'semmiedev.disc_jockey_revive.libs'
}
remapJar {
dependsOn(shadowJar)
mustRunAfter(shadowJar)
inputFile = shadowJar.archiveFile
}
String modVersionSuffix = ''
if (System.getenv("BUILD_RELEASE") != "true") {
String buildNumber = System.getenv("BUILD_ID")
modVersionSuffix += buildNumber != null ? ('+build.' + buildNumber) : '' // 文件名前
}
String fullModVersion = rootProject.mod_version + modVersionSuffix
String fullProjectVersion
group = rootProject.maven_group
if (System.getenv("JITPACK") == "true") {
base.archivesName = rootProject.archives_base_name + '-' + project.minecraft_version
fullProjectVersion = 'v' + rootProject.mod_version + modVersionSuffix
} else {
base.archivesName = rootProject.archives_base_name
fullProjectVersion = 'v' + rootProject.mod_version + '-' + project.minecraft_version + modVersionSuffix
}
version = fullProjectVersion
processResources {
inputs.property "id", rootProject.mod_id // 从根项目
inputs.property "name", rootProject.mod_name // 从根项目
inputs.property "version", fullModVersion
filesMatching("fabric.mod.json") {
def valueMap = [
"id" : rootProject.mod_id,
"name" : rootProject.mod_name,
"version" : fullModVersion,
"minecraft_version": project.minecraft_dependency, // 从子项目
"loader_version" : rootProject.loader_version // 从根项目
]
expand valueMap
}
filesMatching(MIXIN_CONFIG_PATH) {
filter { s -> s.replace('{{COMPATIBILITY_LEVEL}}', "JAVA_${MIXIN_COMPATIBILITY_LEVEL.ordinal() + 1}") }
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = "UTF-8"
options.compilerArgs << "-Xlint:deprecation" << "-Xlint:unchecked"
if (JAVA_COMPATIBILITY <= JavaVersion.VERSION_1_8) {
options.compilerArgs << '-Xlint:-options'
}
}
java {
sourceCompatibility = JAVA_COMPATIBILITY
targetCompatibility = JAVA_COMPATIBILITY
withSourcesJar()
}
jar {
from(rootProject.file('LICENSE')) {
rename { "${it}_${rootProject.archives_base_name}" }
}
}
//publishing {
// publications {
// mavenJava(MavenPublication) {
// from components.java
// }
// }
// repositories {
// }
//}