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" }