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 { // } //}