Skip to content

Commit

Permalink
1.20.4 NeoForge (#87)
Browse files Browse the repository at this point in the history
---------

Co-authored-by: Technici4n <[email protected]>
  • Loading branch information
shartte and Technici4n authored Jan 29, 2024
1 parent 6a145f1 commit 758c47b
Show file tree
Hide file tree
Showing 192 changed files with 6,626 additions and 2,014 deletions.
143 changes: 56 additions & 87 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,27 +1,18 @@
plugins {
id 'fabric-loom' version '1.1-SNAPSHOT'
id 'net.neoforged.gradle.userdev'
id 'maven-publish'
id 'com.diffplug.spotless' version '5.14.0'
id 'com.matthewprenger.cursegradle' version '1.4.0'
id "com.modrinth.minotaur" version "2.+"
id 'com.diffplug.spotless'
id 'com.matthewprenger.cursegradle'
id "com.modrinth.minotaur"
}

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

archivesBaseName = project.archives_base_name
version = System.getenv("MOD_VERSION")
? System.getenv("MOD_VERSION")
: "local"
: "0.0.0"
group = project.maven_group

repositories {
maven {
url "https://maven.parchmentmc.net/"
content {
includeGroup "org.parchmentmc.data"
}
}
maven {
url "https://maven.shedaniel.me"
content {
Expand Down Expand Up @@ -56,67 +47,45 @@ repositories {

dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.layered() {
officialMojangMappings()
parchment("org.parchmentmc.data:parchment-1.20.1:2023.08.13@zip")
}
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
include modImplementation("teamreborn:energy:${project.energy_version}")
implementation "net.neoforged:neoforge:${project.neoforge_version}"

if (project.runtime_itemlist_mod == "jei") {
modImplementation("mezz.jei:jei-${project.jei_minecraft_version}-fabric:${project.jei_version}") {
implementation("mezz.jei:jei-${project.jei_minecraft_version}-neoforge:${project.jei_version}") {
exclude group: "mezz.jei"
}
} else {
modCompileOnly("mezz.jei:jei-${project.jei_minecraft_version}-fabric:${project.jei_version}") {
compileOnly("mezz.jei:jei-${project.jei_minecraft_version}-neoforge:${project.jei_version}") {
exclude group: "mezz.jei"
}
}

if (project.runtime_itemlist_mod == "rei") {
modImplementation("me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
implementation("me.shedaniel:RoughlyEnoughItems-neoforge:${project.rei_version}")
} else {
modCompileOnly("me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}") {
exclude group: "net.fabricmc.fabric-api"
}
compileOnly("me.shedaniel:RoughlyEnoughItems-neoforge:${project.rei_version}")
}

if (project.runtime_itemlist_mod == "emi") {
modImplementation("dev.emi:emi-fabric:${project.emi_version}+${project.emi_minecraft_version}") {
exclude group: "net.fabricmc.fabric-api"
}
implementation("dev.emi:emi-neoforge:${project.emi_version}+${project.emi_minecraft_version}")
} else {
modCompileOnly("dev.emi:emi-fabric:${project.emi_version}+${project.emi_minecraft_version}") {
exclude group: "net.fabricmc.fabric-api"
}
compileOnly("dev.emi:emi-neoforge:${project.emi_version}+${project.emi_minecraft_version}")
}

if (!(project.runtime_itemlist_mod in ["jei", "rei", "emi"])) {
throw new GradleException("Invalid runtime_itemlist_mod value: " + project.runtime_itemlist_mod)
}

modRuntimeOnly("mcp.mobius.waila:wthit:fabric-${project.wthit_version}") {
exclude group: "net.fabricmc.fabric-api"
}
runtimeOnly("mcp.mobius.waila:wthit:neo-${project.wthit_version}")
}

processResources {
inputs.property "version", project.version

filesMatching("fabric.mod.json") {
filesMatching("META-INF/mods.toml") {
expand "version": project.version
}
}

loom {
splitEnvironmentSourceSets()
}

sourceSets {
main {
resources {
Expand All @@ -125,52 +94,58 @@ sourceSets {
}
}

loom {
accessWidenerPath = file("src/main/resources/moderndynamics.accesswidener")

mods {
moderndynamics {
sourceSet sourceSets.main
sourceSet sourceSets.client
}
minecraft {
accessTransformers {
file('src/main/resources/META-INF/accesstransformer.cfg')
}
}

runs {
datagenClient {
client()
name "Data Generation"
vmArg "-Dfabric-api.datagen"
vmArg "-Dfabric-api.datagen.output-dir=${file("src/generated/resources")}"

ideConfigGenerated = true
runDir "build/datagen"
}

// Use to run the tests
gametest {
server()
name "Game Test"
vmArg "-Dfabric-api.gametest"
vmArg "-Dfabric-api.gametest.report-file=${project.buildDir}/junit.xml"
runDir "build/gametest"
}
runs {
configureEach {
workingDirectory = project.file('run')
modSources = [sourceSets.main]
}
client {
}
gametestWorld {
configure("client")
programArguments("--username", "MDDev", "--quickPlaySingleplayer", "GametestWorld")
}
server {
}
data {
programArguments = [
'--mod', 'moderndynamics',
'--all',
'--output', file('src/generated/resources/').absolutePath,
'--existing', file('src/main/resources').absolutePath
]
}
// Use to run the tests
gametest {
configure("gameTestServer")
workingDirectory = project.file("build/gametest")
}
}

test.dependsOn runGametest

tasks.withType(JavaCompile).configureEach {
// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
it.options.release = 17
}

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
}

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
options.deprecation = false
options.compilerArgs << "-Xmaxerrs" << "9999"
}

jar {
from("LICENSE") {
rename { "${it}_${project.archivesBaseName}"}
Expand Down Expand Up @@ -272,13 +247,10 @@ if (System.getenv("CURSEFORGE_API_KEY") && !version.endsWith("-SNAPSHOT")) {
changelogType = "markdown"
delegate.changelog = changelog

addGameVersion "1.20.1"
addGameVersion "Fabric"
addGameVersion "1.20.4"
addGameVersion "NeoForge"
addGameVersion "Java 17"

relations {
requiredDependency "fabric-api"
}
mainArtifact(remapJar.archiveFile) {
displayName = "Modern Dynamics v${version}"
}
Expand All @@ -301,10 +273,7 @@ if (System.getenv("MODRINTH_API_KEY") && !version.endsWith("-SNAPSHOT")) {
delegate.changelog = changelog
versionType = releaseChannel.toUpperCase()
uploadFile = remapJar.archiveFile
gameVersions = ["1.20.1"]
loaders = ["fabric"]
dependencies {
required.project "fabric-api"
}
gameVersions = ["1.20.4"]
loaders = ["neoforge"]
}
}
26 changes: 14 additions & 12 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ org.gradle.jvmargs=-Xmx1G \
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED

# Fabric Properties
# check these on https://fabricmc.net/versions.html
minecraft_version=1.20.1
loader_version=0.14.19
minecraft_version=1.20.4

# Mod Properties
maven_group = dev.technici4n
Expand All @@ -19,18 +16,23 @@ curseforge_project = 552758
modrinth_project = fMpvLrnF

# Dependencies
fabric_version=0.89.0+1.20.1
energy_version=3.0.0
neoforge_version=20.4.127-beta

#########################################################
# Parchment #
#########################################################
neogradle.subsystems.parchment.minecraftVersion=1.20.3
neogradle.subsystems.parchment.mappingsVersion=2023.12.26-nightly-SNAPSHOT

# In-dev runtime mods
rei_version=12.0.645
wthit_version=8.3.1
rei_version=14.0.688
wthit_version=10.1.0

jei_minecraft_version=1.20.1
jei_version=15.2.0.25
jei_minecraft_version=1.20.4
jei_version=17.0.0.37

emi_minecraft_version=1.20.1
emi_version=1.0.19
emi_minecraft_version=1.20.4
emi_version=1.1.0

# Set to emi, jei, or rei to pick which tooltip mod gets picked at runtime
# for the dev environment.
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
11 changes: 9 additions & 2 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
pluginManagement {
repositories {
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
name = 'NeoForged'
url = 'https://maven.neoforged.net/releases'
}
gradlePluginPortal()
mavenCentral()
}
plugins {
id 'net.neoforged.gradle.userdev' version '7.0.78'
id 'com.diffplug.spotless' version '5.14.0'
id 'com.matthewprenger.cursegradle' version '1.4.0'
id "com.modrinth.minotaur" version "2.+"
}
}

Expand Down
Loading

0 comments on commit 758c47b

Please sign in to comment.