117 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Groovy
		
	
	
	
plugins {
 | 
						|
    id 'java-library'
 | 
						|
    id 'maven-publish'
 | 
						|
    id 'idea'
 | 
						|
    id 'net.neoforged.moddev' version '2.0.115'
 | 
						|
}
 | 
						|
 | 
						|
version = mod_version
 | 
						|
group = mod_group_id
 | 
						|
 | 
						|
repositories {
 | 
						|
    mavenLocal()
 | 
						|
}
 | 
						|
 | 
						|
base {
 | 
						|
    archivesName = mod_id
 | 
						|
}
 | 
						|
 | 
						|
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
 | 
						|
 | 
						|
tasks.withType(JavaCompile).configureEach {
 | 
						|
    options.encoding = 'UTF-8'
 | 
						|
}
 | 
						|
 | 
						|
neoForge {
 | 
						|
    version = project.neo_version
 | 
						|
 | 
						|
    parchment {
 | 
						|
        mappingsVersion = project.parchment_mappings_version
 | 
						|
        minecraftVersion = project.parchment_minecraft_version
 | 
						|
    }
 | 
						|
 | 
						|
    runs {
 | 
						|
        client {
 | 
						|
            client()
 | 
						|
            systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
 | 
						|
        }
 | 
						|
 | 
						|
        server {
 | 
						|
            server()
 | 
						|
            programArgument '--nogui'
 | 
						|
            systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
 | 
						|
        }
 | 
						|
 | 
						|
        gameTestServer {
 | 
						|
            type = "gameTestServer"
 | 
						|
            systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
 | 
						|
        }
 | 
						|
 | 
						|
        data {
 | 
						|
            data()
 | 
						|
            programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
 | 
						|
        }
 | 
						|
 | 
						|
        configureEach {
 | 
						|
            systemProperty 'forge.logging.markers', 'REGISTRIES'
 | 
						|
            logLevel = org.slf4j.event.Level.DEBUG
 | 
						|
            systemProperty 'file.encoding', 'UTF-8'
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    mods {
 | 
						|
        "${mod_id}" {
 | 
						|
            sourceSet(sourceSets.main)
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
sourceSets.main.resources { srcDir 'src/generated/resources' }
 | 
						|
 | 
						|
dependencies {
 | 
						|
    implementation 'com.google.code.gson:gson:2.10.1'
 | 
						|
}
 | 
						|
 | 
						|
var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
 | 
						|
    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
 | 
						|
    expand replaceProperties
 | 
						|
    from "src/main/templates"
 | 
						|
    into "build/generated/sources/modMetadata"
 | 
						|
}
 | 
						|
 | 
						|
sourceSets.main.resources.srcDir generateModMetadata
 | 
						|
neoForge.ideSyncTask generateModMetadata
 | 
						|
 | 
						|
publishing {
 | 
						|
    publications {
 | 
						|
        register('mavenJava', MavenPublication) {
 | 
						|
            from components.java
 | 
						|
        }
 | 
						|
    }
 | 
						|
    repositories {
 | 
						|
        maven {
 | 
						|
            url "file://${project.projectDir}/repo"
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
idea {
 | 
						|
    module {
 | 
						|
        downloadSources = true
 | 
						|
        downloadJavadoc = true
 | 
						|
    }
 | 
						|
}
 |