Skip to content
Merged
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ bin/

run/
run-data/
/src/generated/resources/.cache/*
98 changes: 63 additions & 35 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,15 @@ buildscript {

plugins {
id "idea"
id "eclipse"
id "maven-publish"
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
id 'net.neoforged.moddev.legacyforge' version '2.0.91'
id 'com.diffplug.spotless' version '7.0.2'
id 'org.spongepowered.mixin' version '0.7+'
}

def generatedResources = file("src/generated")

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

Expand Down Expand Up @@ -76,54 +73,85 @@ version = mod_version
group = maven_group
base { archivesName = archives_base_name }
java { sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 }
sourceSets.main.resources { srcDir 'src/generated/resources' }

minecraft {
mappings channel: mapping_channel, version: mapping_version
copyIdeResources = true
legacyForge {
version = project.minecraft_version + '-' + project.forge_version

parchment {
mappingsVersion = project.mapping_version
minecraftVersion = project.minecraft_version
}

runs {
configureEach {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
mods { "${mod_id}" { source sourceSets.main } }
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
// Recommended logging data for a userdev environment
// The markers can be added/remove as needed separated by commas.
// "SCAN": For mods scan.
// "REGISTRIES": For firing of registry events.
// "REGISTRYDUMP": For getting the contents of all registries.
systemProperty 'forge.logging.markers', 'REGISTRIES'

// Recommended logging level for the console
// You can set various levels here.
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
logLevel = org.slf4j.event.Level.DEBUG
sourceSet = sourceSets.main
}
client {
client()
programArguments.addAll('--refresh-dependencies')
systemProperty('forge.enabledGameTestNamespaces', project.mod_id)
}
server {
server()
systemProperty('forge.enabledGameTestNamespaces', project.mod_id)
programArguments.addAll('--nogui', '--world', 'world-extra')
}
client { property 'forge.enabledGameTestNamespaces', mod_id }
server { property 'forge.enabledGameTestNamespaces', mod_id; args '--nogui' }
data {
// example of overriding the workingDirectory set in configureEach above
workingDirectory project.file('run-data')
data()

// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
programArguments.addAll('--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath())
programArguments.addAll('--existing-mod', 'gtceu')
}
}
}

mods {
// define mod <-> source bindings
// these are used to tell the game which sources are for which mod
// mostly optional in a single mod project
// but multi mod projects should define one per mod
"${mod_id}" {
sourceSet(sourceSets.main)
}
}
}
jar {
manifest.attributes([
"MixinConfigs": "examplemod.mixins.json"
])
}

apply plugin: 'org.spongepowered.mixin'
apply from: "$rootDir/gradle/scripts/spotless.gradle"

dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
compileOnly("org.jetbrains:annotations:26.0.1")

// Mixin
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
annotationProcessor('org.spongepowered:mixin:0.8.5:processor')

// JEI, EMI, Jade
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
runtimeOnly fg.deobf("dev.emi:emi-forge:${emi_version}+${minecraft_version}")
runtimeOnly fg.deobf("curse.maven:jade-324717:5390389")
modCompileOnly("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
modCompileOnly("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
modRuntimeOnly("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
modRuntimeOnly("dev.emi:emi-forge:${emi_version}+${minecraft_version}")
modRuntimeOnly("curse.maven:jade-324717:5390389")

// GregTech and dependencies
implementation fg.deobf("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtceu_version}:slim") { transitive = false }
implementation fg.deobf("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
runtimeOnly fg.deobf("dev.toma.configuration:configuration-forge-${minecraft_version}:${configuration_version}")
modImplementation("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtceu_version}:slim") { transitive = false }
modImplementation("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
modImplementation("com.tterrag.registrate:Registrate:${registrate_version}")
modRuntimeOnly("dev.toma.configuration:configuration-forge-${minecraft_version}:${configuration_version}")

// lombok
compileOnly 'org.projectlombok:lombok:1.18.24'
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
# forge version, latest version can be found on https://files.minecraftforge.net/
forge_version=47.4.0
mapping_channel=parchment
mapping_version=2023.09.03-1.20.1
mapping_version=2023.09.03

# Mod Properties
mod_version=0.1.0
Expand Down
3 changes: 3 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ pluginManagement {
maven { url = 'https://maven.parchmentmc.org' }
}
}
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
}
Loading