Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,25 @@ out
*.iws
*.iml
.idea
.vscode/

# gradle
build
.gradle
/build/
/.gradle/

# other
eclipse
run
/run/
/runs/
/logs/
logs/
*.hprof
hs_err_pid*
replay_pid*
.DS_Store

# Files from Forge MDK
forge*changelog.txt

# local publishing output
/repo/

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's going on here? Were there changes to artifact name and locations in 1.21?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's standard from the neoforge 1.21 mdk template -- neoforge uses "runs" rather than "run" and "repo" for local output.

267 changes: 133 additions & 134 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,134 +1,133 @@
plugins {
id 'eclipse'

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this based on the boilerplate mod for neo 1.21.1 or is it just vibes?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's almost entirely identical to the neoforge 1.21 mdk template

id 'idea'
id 'maven-publish'
id 'net.neoforged.gradle' version '[6.0.18,6.2)'
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
}

if (System.getenv('VERSION') != null) {
mod_version = System.getenv('VERSION')
} else if (project.hasProperty("CI")) {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags', '--abbrev=0'
standardOutput = stdout
}
mod_version = stdout.toString().replace("\n", "").replace("\r", "").trim()
}


version = "${minecraft_version}-${mod_version}"
group = mod_group_id

base {
archivesName = mod_id
}

java.toolchain.languageVersion = JavaLanguageVersion.of(17)

println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"
minecraft {
mappings channel: mapping_channel, version: mapping_version

copyIdeResources = true
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
runs {
configureEach {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'

mods {
"${mod_id}" {
source sourceSets.main
}
}
}

client {
property 'forge.enabledGameTestNamespaces', mod_id
}

server {
property 'forge.enabledGameTestNamespaces', mod_id
args '--nogui'
}

gameTestServer {
property 'forge.enabledGameTestNamespaces', mod_id
}

data {
workingDirectory project.file('run-data')

args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
}
}
}

sourceSets.main.resources { srcDir 'src/generated/resources' }

repositories {}

dependencies {
minecraft "net.neoforged:forge:${minecraft_version}-${forge_version}"
}

tasks.named('processResources', ProcessResources).configure {
var replaceProperties = [
minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range,
forge_version : forge_version, forge_version_range: forge_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/mods.toml', 'pack.mcmeta']) {
expand replaceProperties + [project: project]
}
}

tasks.named('jar', Jar).configure {
manifest {
attributes([
'Specification-Title' : mod_id,
'Specification-Vendor' : mod_authors,
'Specification-Version' : '1', // We are version 1 of ourselves
'Implementation-Title' : project.name,
'Implementation-Version' : project.jar.archiveVersion,
'Implementation-Vendor' : mod_authors,
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}

finalizedBy 'reobfJar'
}

publishing {
publications {
register('mavenJava', MavenPublication) {
groupId project.group
artifactId project.archivesBaseName
version project.version
artifact jar

pom.withXml {
asNode().dependencies.dependency.each { dep ->
println 'Surpressing artifact ' + dep.artifactId.last().value().last() + ' from maven dependencies.'
assert dep.parent().remove(dep)
}
}
}
}
repositories {
maven {
url = uri("file://${System.getenv("local_maven")}")
}
}
}

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
}
plugins {
id 'java-library'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.1.21'
}

if (System.getenv('VERSION') != null) {
mod_version = System.getenv('VERSION')
} else if (project.hasProperty('CI')) {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags', '--abbrev=0'
standardOutput = stdout
}
mod_version = stdout.toString().replace("\n", '').replace("\r", '').trim()
}

version = "${minecraft_version}-${mod_version}"
group = mod_group_id

base {
archivesName = mod_id
}

java.toolchain.languageVersion = JavaLanguageVersion.of(21)

println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"

sourceSets.main.resources {
srcDir('src/generated/resources')
}

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 '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()
}
}

repositories {
mavenLocal()
}

configurations {
runtimeClasspath.extendsFrom localRuntime
}

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

publishing {
publications {
register('mavenJava', MavenPublication) {
from components.java
pom.withXml {
asNode().dependencies.dependency.each { dep ->
println 'Surpressing artifact ' + dep.artifactId.last().value().last() + ' from maven dependencies.'
assert dep.parent().remove(dep)
}
}
}
}
repositories {
if (System.getenv('local_maven')) {
maven {
url = uri("file://${System.getenv('local_maven')}")
}
} else {
maven {
url = uri("${project.projectDir}/repo")
}
}
}
}

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}

tasks.named('wrapper', Wrapper).configure {
distributionType = Wrapper.DistributionType.BIN
}

idea {
module {
downloadSources = true
downloadJavadoc = true
}
}
21 changes: 12 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
minecraft_version=1.20.1
minecraft_version_range=[1.20.1,1.21)
forge_version=47.1.54
forge_version_range=[47,)
loader_version_range=[47,)
mapping_channel=parchment
mapping_version=2023.07.30-1.20.1
org.gradle.parallel=true
org.gradle.caching=true

neogradle.subsystems.parchment.minecraftVersion=1.21.1
neogradle.subsystems.parchment.mappingsVersion=2024.11.17

minecraft_version=1.21.1
minecraft_version_range=[1.21.1]
neo_version=21.1.223
neo_version_range=[21.1.0,)
loader_version_range=[1,)
mod_id=mutil
mod_name=mutil
mod_license=MIT
mod_version=6.3.0
mod_version=6.3.1
mod_group_id=se.mickelus.mutil
mod_authors=Mickelus
mod_description=A collection of utilities used by mods like tetra.

3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Empty file modified gradlew
100644 → 100755
Empty file.
27 changes: 10 additions & 17 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
pluginManagement {
repositories {
gradlePluginPortal()
maven {
name "NeoForge"
url "https://maven.neoforged.net/releases/"
}
maven {
name 'parchment'
url 'https://maven.parchmentmc.org'
}
}
}

plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0'
}
pluginManagement {
repositories {
gradlePluginPortal()
maven { url = 'https://maven.neoforged.net/releases' }
}
}

plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
}
Loading