175 lines
5.1 KiB
Groovy
175 lines
5.1 KiB
Groovy
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' // mama(随便加的)
|
||
}
|
||
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 {
|
||
// }
|
||
//}
|