161 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			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"
 | 
						|
} |