Files
L2Core/build.gradle
2024-08-23 13:36:59 +08:00

161 lines
4.4 KiB
Groovy

plugins {
id 'java-library'
id 'eclipse'
id 'idea'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.0.145'
}
version = mod_version
group = 'dev.kxmc'
repositories {
mavenLocal()
}
base {
archivesName = mod_id
}
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg')
runs {
configureEach {
systemProperty 'forge.logging.markers', 'REGISTRIES'
systemProperty 'forge.logging.console.level', 'debug'
modSource project.sourceSets.main
}
client {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
}
server {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
programArgument '--nogui'
}
gameTestServer {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
}
data {
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
}
}
sourceSets.main.resources { srcDir 'src/generated/resources' }
dependencies {
implementation "net.neoforged:neoforge:${neo_version}"
}
tasks.withType(ProcessResources).configureEach {
var replaceProperties = [
minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range,
neo_version : neo_version, neo_version_range: neo_version_range,
loader_version_range: loader_version_range,
mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version,
mod_authors : mod_authors, mod_description: mod_description,
]
inputs.properties replaceProperties
filesMatching(['META-INF/neoforge.mods.toml']) {
expand replaceProperties + [project: project]
}
}
// Example configuration to allow publishing using the maven-publish plugin
publishing {
publications {
register('mavenJava', MavenPublication) {
from components.java
}
}
repositories {
maven {
url "file://${project.projectDir}/repo"
}
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
}
if (lljij.toBoolean()) jarJar.enable()
java {
withSourcesJar()
}
jar {
manifest {
attributes([
"Specification-Title" : "${mod_id}",
"Specification-Vendor" : "xkmc",
"Specification-Version" : "1", // We are version 1 of ourselves
"Implementation-Title" : project.name,
"Implementation-Version" : project.jar.archiveVersion,
"Implementation-Vendor" : "xkmc",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
'MixinConfigs' : "${mod_id}.mixins.json"
])
}
}
if (lljij.toBoolean()) {
tasks.jarJar.configure {
archiveClassifier.set('')
}
jar {
archiveClassifier.set('slim')
}
}
repositories {
flatDir {
dirs 'libs'
}
maven { // Registrate
url "https://maven.ithundxr.dev/snapshots"
}
maven {
url = "https://maven.theillusivec4.top/"
}
maven {
// Location of the maven for vazkii's mods
name 'blamejared'
url 'https://maven.blamejared.com'
}
maven {
url 'https://www.cursemaven.com'
content {
includeGroup "curse.maven"
}
}
maven {
// Location of the maven that hosts JEI files (and TiC)
name 'Progwml6 maven'
url 'https://dvs1.progwml6.com/files/maven'
}
mavenLocal();
}
dependencies {
implementation "mezz.jei:jei-${jei_minecraft_version}:${jei_version}"
implementation "com.tterrag.registrate:Registrate:${registrate_version}"
implementation "dev.xkmc:l2serial:${l2serial_ver}"
implementation "vazkii.patchouli:Patchouli:${patchouli_ver}"
runtimeOnly "dev.xkmc:l2damagetracker:3.0.2"
runtimeOnly "dev.xkmc:l2menustacker:3.0.9"
runtimeOnly "dev.xkmc:l2itemselector:3.0.7"
runtimeOnly "dev.xkmc:l2library:3.0.2"
runtimeOnly "dev.xkmc:l2complements:3.0.2+3"
runtimeOnly "curse.maven:embeddium-908741:5630163"
}