Files
Warium-NeoForge-1.21.1/build.gradle
Codex 6ef5fdd378
Some checks failed
Build / build (push) Failing after 13m38s
Release Dry Run / release-dry-run (push) Successful in 5s
Codex Template Compliance / template-compliance (push) Successful in 5s
Bootstrap Warium NeoForge port scaffold
2026-05-09 20:59:05 +02:00

137 lines
3.8 KiB
Groovy

plugins {
id 'java-library'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.1.26'
}
version = mod_version
group = mod_group_id
base {
archivesName = 'warium-neoforge-1.21.1'
}
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
sourceSets {
main {
java {
srcDir 'src/generated/java'
}
resources {
srcDir 'src/generated/resources'
exclude '**/*.bbmodel'
exclude 'src/generated/**/.cache'
}
}
}
repositories {
maven {
name = 'NeoForge'
url = 'https://maven.neoforged.net/releases'
}
}
configurations {
runtimeClasspath.extendsFrom localRuntime
}
dependencies {
implementation "net.neoforged:neoforge:${neo_version}"
}
runs {
configureEach {
systemProperty 'forge.logging.markers', 'REGISTRIES'
systemProperty 'forge.logging.console.level', 'debug'
workingDirectory project.layout.projectDirectory.dir('run').dir(name)
modSource project.sourceSets.main
}
client {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}
server {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
argument '--nogui'
}
gameTestServer {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}
data {
arguments.addAll '--mod', project.mod_id, '--all',
'--output', file('src/generated/resources/').getAbsolutePath(),
'--existing', file('src/main/resources/').getAbsolutePath()
}
}
tasks.register('generatePortSources', Exec) {
group = 'warium port'
description = 'Downloads Warium 1.2.7, verifies it, extracts resources, and generates NeoForge registry stubs.'
commandLine 'python', 'tools/generate_port_sources.py'
}
tasks.register('decompileOriginal', Exec) {
group = 'warium port'
description = 'Downloads and decompiles the original Warium jar for manual porting work.'
commandLine 'python', 'tools/decompile_original.py'
}
tasks.register('checkRequiredIntegrations', Exec) {
group = 'verification'
description = 'Checks required Warium ecosystem integration availability.'
commandLine 'python', 'tools/check_required_integrations.py'
}
tasks.register('registryParity', Exec) {
group = 'verification'
description = 'Checks generated registry stubs against the original jar inventory.'
commandLine 'python', 'tools/registry_parity.py'
dependsOn tasks.named('generatePortSources')
}
compileJava.dependsOn tasks.named('generatePortSources')
processResources.dependsOn tasks.named('generatePortSources')
build.dependsOn tasks.named('registryParity')
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
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
publishing {
publications {
register('mavenJava', MavenPublication) {
from components.java
}
}
repositories {
maven {
url "file://${project.projectDir}/repo"
}
}
}