96 lines
2.9 KiB
Groovy
96 lines
2.9 KiB
Groovy
plugins {
|
||
id 'net.neoforged.moddev' version '2.0.78'
|
||
id 'maven-publish'
|
||
}
|
||
|
||
repositories {
|
||
mavenCentral()
|
||
def localRepository = mavenLocal()
|
||
remove(localRepository)
|
||
add(0, localRepository)
|
||
// CurseMaven for Jade and other mods
|
||
maven {
|
||
url "https://cursemaven.com"
|
||
content {
|
||
includeGroup "curse.maven"
|
||
}
|
||
}
|
||
// Modrinth for Jade
|
||
maven {
|
||
url "https://api.modrinth.com/maven"
|
||
}
|
||
}
|
||
|
||
version = mod_version
|
||
group = mod_group
|
||
|
||
var modName = mod_name
|
||
var mcVersion = minecraft_version
|
||
base { archivesName = "${modName}-${mcVersion}-neoforge" }
|
||
|
||
java {
|
||
toolchain.languageVersion = JavaLanguageVersion.of(21)
|
||
withSourcesJar()
|
||
}
|
||
|
||
neoForge {
|
||
version = neoforge_version
|
||
runs {
|
||
client { client() }
|
||
server { server() }
|
||
}
|
||
mods { "${mod_id}" { sourceSet sourceSets.main } }
|
||
}
|
||
|
||
dependencies {
|
||
compileOnly "org.appliedenergistics:appliedenergistics2:19.2.17:api"
|
||
compileOnly "org.appliedenergistics:appliedenergistics2:19.2.17" // 加这行保留!!让AE2内部类可编译
|
||
compileOnly files('library/thaumcraft-0.2.2.34-port.1.jar')
|
||
compileOnly files('library/jei-1.21.1-neoforge-19.39.0.368.jar')
|
||
compileOnly files('library/ae2jeiintegration-1.2.1.jar')
|
||
compileOnly "maven.modrinth:jade:${jade_version}"
|
||
}
|
||
|
||
|
||
tasks.withType(JavaCompile).configureEach {
|
||
it.options.encoding = 'UTF-8'
|
||
it.options.release = 21
|
||
}
|
||
|
||
var modVersion = mod_version
|
||
def loaderRange = project.findProperty('loader_version_range') ?: '[4,)'
|
||
def neoforgeRange = project.findProperty('neoforge_version_range') ?: '[21,)'
|
||
def mcRange = project.findProperty('minecraft_version_range') ?: '[1.21.1,1.22)'
|
||
|
||
processResources {
|
||
filesMatching('META-INF/neoforge.mods.toml') {
|
||
expand([
|
||
'version': modVersion, 'loader_version_range': loaderRange,
|
||
'neoforge_version_range': neoforgeRange, 'minecraft_version_range': mcRange
|
||
])
|
||
}
|
||
}
|
||
|
||
jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
|
||
|
||
def gitVersion() {
|
||
def describe = providers.exec {
|
||
commandLine 'git', 'describe', '--tags', '--always'
|
||
}.standardOutput.asText.map { it.trim() }.get()
|
||
// 支持 "2.2" / "v2.2.0" / "2.2-3-gabc1234" / "abc1234"(无tag时)
|
||
// 版本 = tag 的 X.Y + 提交数:tag 2.2 + 2 提交 → 2.2.2
|
||
// find() 只匹配开头,忽略尾部 commit hash(-gabc1234)
|
||
def m = describe =~ /^v?(\d+\.\d+)(?:\.\d+)?(?:-(\d+))?/
|
||
if (m.find()) {
|
||
def xy = m.group(1) // 2.2
|
||
def count = m.group(2) ? m.group(2) : '0' // tag 后提交数
|
||
return "${xy}.${count}-alpha" // 2.2.2-alpha
|
||
}
|
||
// 兜底(从未打 tag):mod_version + 总提交数
|
||
def count = providers.exec {
|
||
commandLine 'git', 'rev-list', '--count', 'HEAD'
|
||
}.standardOutput.asText.map { it.trim() }.get()
|
||
return "${mod_version}.${count}-alpha"
|
||
}
|
||
version = gitVersion()
|