From 7a152e147bab9c381ec3317b87518920612ddfdd Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 16:56:12 -0500 Subject: [PATCH 01/27] Refactor: Buildscripts --- build.gradle.kts | 33 +++++++++++++++-------------- common/build.gradle.kts | 16 ++++++++------ fabric/build.gradle.kts | 45 ++++++++++++++++++++++++++++++---------- forge/build.gradle.kts | 46 ++++++++++++++++++++++++++++++----------- gradle.properties | 3 ++- 5 files changed, 97 insertions(+), 46 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2394637e1..0444c6dd9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,11 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import net.fabricmc.loom.task.RemapJarTask -val modId = project.properties["mod_id"].toString() -val modVersion = project.properties["mod_version"].toString() -val mavenGroup = project.properties["maven_group"].toString() -val minecraftVersion = project.properties["minecraft_version"].toString() -val yarnMappings = project.properties["yarn_mappings"].toString() +val modId = property("mod_id").toString() +val modVersion = property("mod_version").toString() +val mavenGroup = property("maven_group").toString() +val minecraftVersion = property("minecraft_version").toString() +val yarnMappings = property("yarn_mappings").toString() plugins { kotlin("jvm") version ("1.9.22") @@ -22,6 +22,7 @@ architectury { subprojects { apply(plugin = "dev.architectury.loom") apply(plugin = "org.jetbrains.dokka") + dependencies { "minecraft"("com.mojang:minecraft:$minecraftVersion") "mappings"("net.fabricmc:yarn:$yarnMappings:v2") @@ -64,21 +65,21 @@ allprojects { version = modVersion repositories { + maven("https://impactdevelopment.github.io/maven/") { name = "ImpactDev" } maven("https://api.modrinth.com/maven") maven("https://jitpack.io") - maven("https://maven.shedaniel.me/") { - name = "Architectury" - } + maven("https://maven.shedaniel.me/") { name = "Architectury" } maven("https://maven.terraformersmc.com/releases/") - } - tasks { - withType { - options.encoding = "UTF-8" - options.release = 17 - } - compileKotlin { - kotlinOptions.jvmTarget = "17" + flatDir { + dirs("libs") // TODO: Absolute path } } + + java { + // withSourcesJar() // Uncomment this line when the plugin system is ready + + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 0bc1442cc..c180f2a44 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,6 +1,7 @@ -val fabricLoaderVersion = project.properties["fabric_loader_version"].toString() -val fabricKotlinVersion = project.properties["fabric_kotlin_version"].toString() -val mixinExtrasVersion = project.properties["mixinextras_version"].toString() +val fabricLoaderVersion = property("fabric_loader_version").toString() +val fabricKotlinVersion = property("fabric_kotlin_version").toString() +val mixinExtrasVersion = property("mixinextras_version").toString() +val kotlinXCoroutineVersion = property("kotlinx_coroutines_version").toString() architectury { common("fabric", "forge") } @@ -9,10 +10,9 @@ loom { } repositories { - maven("https://maven.fabricmc.net/") { - name = "Fabric" - } + maven("https://maven.fabricmc.net/") { name = "Fabric" } maven("https://jitpack.io") + mavenCentral() mavenLocal() } @@ -21,11 +21,15 @@ dependencies { // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies // Do NOT use other classes from fabric loader modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion") + // Add dependencies on the required Kotlin modules. modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) + + // Baritone } +// Avoid nested jars tasks.named("remapJar") { enabled = false } diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index d0ed25f40..33ded23e6 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -1,6 +1,6 @@ -val fabricLoaderVersion = project.properties["fabric_loader_version"].toString() -val fabricApiVersion = project.properties["fabric_api_version"].toString() -val fabricKotlinVersion = project.properties["fabric_kotlin_version"].toString() +val fabricLoaderVersion = property("fabric_loader_version").toString() +val fabricApiVersion = property("fabric_api_version").toString() +val fabricKotlinVersion = property("fabric_kotlin_version").toString() architectury { platformSetupLoomIde() @@ -20,16 +20,39 @@ val common: Configuration by configurations.creating { configurations["developmentFabric"].extendsFrom(this) } -dependencies { - common(project(":common", configuration = "namedElements")) { - isTransitive = false +val includeLib: Configuration by configurations.creating +val includeMod: Configuration by configurations.creating + +fun DependencyHandlerScope.setupConfigurations() { + includeLib.dependencies.forEach { + implementation(it) + include(it) } - shadowCommon(project(path = ":common", configuration = "transformProductionFabric")) { - isTransitive = false + + includeMod.dependencies.forEach { + modImplementation(it) + include(it) } - modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion") - modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") - modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") +} + +dependencies { + // Fabric API + includeMod("net.fabricmc:fabric-loader:$fabricLoaderVersion") + includeMod("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + includeMod("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") + + // Add dependencies on the required Kotlin modules. + // includeLib(...) + + // Add mods to the mod jar + // includeMod(...) + + // Common (Do not touch) + common(project(":common", configuration = "namedElements")) { isTransitive = false } + shadowCommon(project(path = ":common", configuration = "transformProductionFabric")) { isTransitive = false } + + // Finish the configuration + setupConfigurations() } tasks { diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 1c08fd218..35052f3d5 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -1,6 +1,6 @@ -val forgeVersion = project.properties["forge_version"].toString() -val kotlinForgeVersion = project.properties["kotlin_forge_version"].toString() -val mixinExtrasVersion = project.properties["mixinextras_version"].toString() +val forgeVersion = property("forge_version").toString() +val kotlinForgeVersion = property("kotlin_forge_version").toString() +val mixinExtrasVersion = property("mixinextras_version").toString() architectury { platformSetupLoomIde() @@ -33,17 +33,39 @@ val common: Configuration by configurations.creating { configurations["developmentForge"].extendsFrom(this) } -dependencies { - forge("net.minecraftforge:forge:$forgeVersion") - implementation("thedarkcolour:kotlinforforge:$kotlinForgeVersion") - common(project(":common", configuration = "namedElements")) { - isTransitive = false +val includeLib: Configuration by configurations.creating +val includeMod: Configuration by configurations.creating + +fun DependencyHandlerScope.setupConfigurations() { + includeLib.dependencies.forEach { + implementation(it) + include(it) } - shadowCommon(project(path = ":common", configuration = "transformProductionForge")) { - isTransitive = false + + includeMod.dependencies.forEach { + modImplementation(it) + include(it) } - implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) - implementation(include("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion")!!) +} + +dependencies { + // Forge API + forge("net.minecraftforge:forge:$forgeVersion") + + // Add dependencies on the required Kotlin modules. + includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + includeLib(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) + includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") + + // Add mods to the mod jar + // includeMod(...) + + // Common (Do not touch) + common(project(":common", configuration = "namedElements")) { isTransitive = false } + shadowCommon(project(path = ":common", configuration = "transformProductionForge")) { isTransitive = false } + + // Finish the configuration + setupConfigurations() } tasks { diff --git a/gradle.properties b/gradle.properties index 31d8f08ca..03cc0bad1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,6 +6,7 @@ maven_group=com.lambda # General minecraft_version=1.20.4 mixinextras_version=0.3.5 +kotlinx_coroutines_version=1.8.0 # Architectury https://docs.architectury.dev/start enabled_platforms=fabric,forge @@ -26,4 +27,4 @@ kotlin.code.style=official # Gradle https://gradle.org/ org.gradle.jvmargs=-Xmx2048M -org.gradle.parallel=true4 \ No newline at end of file +org.gradle.parallel=true4 From dbaadbcfbd2e21b5916ed619143b9b41cb3fbcce Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 17:44:14 -0500 Subject: [PATCH 02/27] Fix: Absolute flatdir path --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0444c6dd9..159bb1805 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -72,7 +72,7 @@ allprojects { maven("https://maven.terraformersmc.com/releases/") flatDir { - dirs("libs") // TODO: Absolute path + dirs(rootProject.file("libs")) } } From 737e2918ab64df9467c3380fb2185d1fbb22d8b0 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:06:19 -0500 Subject: [PATCH 03/27] Refactor: Don't include the jars --- fabric/build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 33ded23e6..2e20df784 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -36,10 +36,10 @@ fun DependencyHandlerScope.setupConfigurations() { } dependencies { - // Fabric API - includeMod("net.fabricmc:fabric-loader:$fabricLoaderVersion") - includeMod("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") - includeMod("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") + // Fabric API (Do not touch) + modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") // Add dependencies on the required Kotlin modules. // includeLib(...) From 6899b7b93360dc67a4d3139d54904301bc9c69b6 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:17:01 -0500 Subject: [PATCH 04/27] Refactor: Misinput It was a misinput, MISINPUT CALM DOWN YOU CALM THE F DOWN --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 03cc0bad1..3ca77204b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,4 +27,4 @@ kotlin.code.style=official # Gradle https://gradle.org/ org.gradle.jvmargs=-Xmx2048M -org.gradle.parallel=true4 +org.gradle.parallel=true From 689ad83965bc34687fad1c22fd7119795bc0c977 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:20:49 -0500 Subject: [PATCH 05/27] Feature: 1.20.+ version The minimum fabric loader version is based on the fabric kotlin library minimum fabric loader version --- fabric/src/main/resources/fabric.mod.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 3482da947..f641d1196 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -26,9 +26,9 @@ "lambda.mixins.common.json" ], "depends": { - "fabricloader": ">=${fabric_loader_version}", - "fabric-api": "*", - "minecraft": "1.20.4", + "fabricloader": ">=0.14.24", + "fabric-api": ">=0.83.0+1.20", + "minecraft": ">=1.20.0", "java": ">=17", "fabric-language-kotlin": ">=${fabric_kotlin_version}" } From 688ecd404d666bdba40069ba23ef6979c6e318b7 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:39:04 -0500 Subject: [PATCH 06/27] Fix: Mixin mod conflict --- forge/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 35052f3d5..1b81dd6b3 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -54,8 +54,8 @@ dependencies { // Add dependencies on the required Kotlin modules. includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") - includeLib(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") + implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) // Avoids the mods from conflicting with each other // Add mods to the mod jar // includeMod(...) From ca8b3b483ab794c8df54f8c2423e19881f1abbdf Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:41:15 -0500 Subject: [PATCH 07/27] Feature: Forge 1.19.3 to 1.20.x --- forge/src/main/resources/META-INF/mods.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index dc7ed6e59..38b67b86e 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -15,14 +15,14 @@ displayTest = "IGNORE_ALL_VERSION" [[dependencies.lambda]] modId = "forge" mandatory = true -versionRange = "[47,)" +versionRange = "[44,)" ordering = "NONE" side = "CLIENT" [[dependencies.lambda]] modId = "minecraft" mandatory = true -versionRange = "[1.20.4,)" +versionRange = "[1.19.3,1.21)" ordering = "NONE" side = "CLIENT" From a8faff821d036d23a3536c2cedc1842020cc9500 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:47:19 -0500 Subject: [PATCH 08/27] Removed maven name --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 159bb1805..71bcb19fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -65,7 +65,7 @@ allprojects { version = modVersion repositories { - maven("https://impactdevelopment.github.io/maven/") { name = "ImpactDev" } + maven("https://impactdevelopment.github.io/maven/") maven("https://api.modrinth.com/maven") maven("https://jitpack.io") maven("https://maven.shedaniel.me/") { name = "Architectury" } From dcaa53c025f0621887911df37af31a7853250a40 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:48:08 -0500 Subject: [PATCH 09/27] Global val instead of absolute path --- build.gradle.kts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 71bcb19fb..8ccc29351 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,6 +7,8 @@ val mavenGroup = property("maven_group").toString() val minecraftVersion = property("minecraft_version").toString() val yarnMappings = property("yarn_mappings").toString() +val libs = file("libs") + plugins { kotlin("jvm") version ("1.9.22") id("org.jetbrains.dokka") version "1.9.20" @@ -72,7 +74,7 @@ allprojects { maven("https://maven.terraformersmc.com/releases/") flatDir { - dirs(rootProject.file("libs")) + dirs(libs) } } From 15d75b6d21b508dbc9cd50593962e34b65a5574a Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 19:24:24 -0500 Subject: [PATCH 10/27] Fix: Forge dev KFF --- forge/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 1b81dd6b3..204c0c915 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -53,9 +53,9 @@ dependencies { forge("net.minecraftforge:forge:$forgeVersion") // Add dependencies on the required Kotlin modules. - includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") - implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) // Avoids the mods from conflicting with each other + includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) // Avoids libraries from conflicting with each other // Add mods to the mod jar // includeMod(...) From aef495c7e71b57c85bd7dcc0cc060f6528ab0fc5 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 19:28:46 -0500 Subject: [PATCH 11/27] Fix: misinput it was misinput CALM DOWN --- forge/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 204c0c915..f87ff813b 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -55,7 +55,6 @@ dependencies { // Add dependencies on the required Kotlin modules. includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") - implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) // Avoids libraries from conflicting with each other // Add mods to the mod jar // includeMod(...) From 8763aa70bf5bb9ff54d7c8cb187811ed7ca49119 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 19:51:58 -0500 Subject: [PATCH 12/27] Fix: Crash on forge dev env --- forge/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index f87ff813b..5af7b2f4d 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -49,6 +49,10 @@ fun DependencyHandlerScope.setupConfigurations() { } dependencies { + // TODO: Fix forge dev env saying there are missings mods but not in prod, maybe it needs deobfuscated mods? + + compileOnly(kotlin("stdlib")) // Hacky fix https://github.com/thedarkcolour/KotlinForForge/issues/93 + // Forge API forge("net.minecraftforge:forge:$forgeVersion") From 45ca80e1d6b0acb46484e769ca235fc362d2a20c Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sat, 9 Mar 2024 22:54:09 -0500 Subject: [PATCH 13/27] Feature: NeoForge modloader --- build.gradle.kts | 1 - common/build.gradle.kts | 2 +- .../kotlin/com/lambda/fabric/LambdaFabric.kt | 1 - forge/build.gradle.kts | 15 ++-- .../kotlin/com/lambda/forge/LambdaForge.kt | 1 - forge/src/main/resources/META-INF/mods.toml | 2 +- gradle.properties | 7 +- neoforge/build.gradle.kts | 69 +++++++++++++++++++ neoforge/gradle.properties | 1 + .../com/lambda/neoforge/LambdaNeoForge.kt | 13 ++++ .../com/lambda/neoforge/LoaderInfoImpl.kt | 10 +++ .../src/main/resources/META-INF/mods.toml | 33 +++++++++ neoforge/src/main/resources/pack.mcmeta | 6 ++ settings.gradle.kts | 5 +- 14 files changed, 147 insertions(+), 19 deletions(-) create mode 100644 neoforge/build.gradle.kts create mode 100644 neoforge/gradle.properties create mode 100644 neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt create mode 100644 neoforge/src/main/kotlin/com/lambda/neoforge/LoaderInfoImpl.kt create mode 100644 neoforge/src/main/resources/META-INF/mods.toml create mode 100644 neoforge/src/main/resources/pack.mcmeta diff --git a/build.gradle.kts b/build.gradle.kts index 8ccc29351..b0bcba33f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -67,7 +67,6 @@ allprojects { version = modVersion repositories { - maven("https://impactdevelopment.github.io/maven/") maven("https://api.modrinth.com/maven") maven("https://jitpack.io") maven("https://maven.shedaniel.me/") { name = "Architectury" } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index c180f2a44..4ca7a3561 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -3,7 +3,7 @@ val fabricKotlinVersion = property("fabric_kotlin_version").toString() val mixinExtrasVersion = property("mixinextras_version").toString() val kotlinXCoroutineVersion = property("kotlinx_coroutines_version").toString() -architectury { common("fabric", "forge") } +architectury { common("fabric", "forge", "neoforge") } loom { accessWidenerPath.set(File("src/main/resources/lambda.accesswidener")) diff --git a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt index 7f9b8a94e..671ede2d9 100644 --- a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt +++ b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt @@ -7,7 +7,6 @@ import com.lambda.Lambda.LOG object LambdaFabric : ClientModInitializer { override fun onInitializeClient() { Lambda.initialize() - LOG.info("Lambda Fabric initialized") } } diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 5af7b2f4d..e8d9c688e 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -19,12 +19,8 @@ loom { } repositories { - maven("https://thedarkcolour.github.io/KotlinForForge/") { - name = "KotlinForForge" - } - maven("https://cursemaven.com") { - name = "Curse" - } + maven("https://thedarkcolour.github.io/KotlinForForge/") + maven("https://cursemaven.com") } val common: Configuration by configurations.creating { @@ -49,10 +45,6 @@ fun DependencyHandlerScope.setupConfigurations() { } dependencies { - // TODO: Fix forge dev env saying there are missings mods but not in prod, maybe it needs deobfuscated mods? - - compileOnly(kotlin("stdlib")) // Hacky fix https://github.com/thedarkcolour/KotlinForForge/issues/93 - // Forge API forge("net.minecraftforge:forge:$forgeVersion") @@ -67,6 +59,9 @@ dependencies { common(project(":common", configuration = "namedElements")) { isTransitive = false } shadowCommon(project(path = ":common", configuration = "transformProductionForge")) { isTransitive = false } + // KFF Fix + compileOnly(kotlin("stdlib")) // Hacky fix https://github.com/thedarkcolour/KotlinForForge/issues/93 + // Finish the configuration setupConfigurations() } diff --git a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt index 14edcd0fe..08668c24d 100644 --- a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt +++ b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt @@ -8,7 +8,6 @@ import com.lambda.Lambda.LOG object LambdaForge { init { Lambda.initialize() - LOG.info("Lambda Forge initialized") } } diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 38b67b86e..598fb04c1 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -6,7 +6,7 @@ license = "GNU General Public License v3.0" modId = "lambda" version = "${version}" displayName = "Lambda" -authors = "Constructor" +authors = "${authors}" description = ''' ''' logoFile = "assets/lambda/lambda.png" diff --git a/gradle.properties b/gradle.properties index 3ca77204b..0dfc06a09 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,9 @@ -# Lambda https://github.com/lambda-client/NeoLambda +# Lambda https://github.com/lambda-client/lambda mod_id=lambda mod_version=1.0.0 +mod_description=Minecraft utility mod coded in Kotlin maven_group=com.lambda +authors=Constructor # General minecraft_version=1.20.4 @@ -22,6 +24,9 @@ fabric_kotlin_version=1.10.18+kotlin.1.9.22 forge_version=1.20.4-49.0.31 kotlin_forge_version=4.10.0 +# NeoForge https://neoforged.net +neo_version=20.4.196 + # Kotlin https://kotlinlang.org/ kotlin.code.style=official diff --git a/neoforge/build.gradle.kts b/neoforge/build.gradle.kts new file mode 100644 index 000000000..b0c9beb9d --- /dev/null +++ b/neoforge/build.gradle.kts @@ -0,0 +1,69 @@ +val neoVersion = property("neo_version").toString() +val kotlinForgeVersion = property("kotlin_forge_version").toString() +val mixinExtrasVersion = property("mixinextras_version").toString() + +architectury { + platformSetupLoomIde() + neoForge() +} + +base.archivesName.set("${base.archivesName.get()}-neoforge") + +loom { + accessWidenerPath.set(project(":common").loom.accessWidenerPath) +} + +repositories { + maven("https://maven.neoforged.net/releases/") + maven("https://thedarkcolour.github.io/KotlinForForge/") +} + +val common: Configuration by configurations.creating { + configurations.compileClasspath.get().extendsFrom(this) + configurations.runtimeClasspath.get().extendsFrom(this) + configurations["developmentNeoForge"].extendsFrom(this) +} + +val includeLib: Configuration by configurations.creating +val includeMod: Configuration by configurations.creating + +fun DependencyHandlerScope.setupConfigurations() { + includeLib.dependencies.forEach { + implementation(it) + include(it) + } + + includeMod.dependencies.forEach { + modImplementation(it) + include(it) + } +} + +dependencies { + // NeoForge API + neoForge("net.neoforged:neoforge:$neoVersion") + + // Add dependencies on the required Kotlin modules. + includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + + // Add mods to the mod jar + // includeMod(...) + + // Common (Do not touch) + common(project(":common", configuration = "namedElements")) { isTransitive = false } + shadowCommon(project(path = ":common", configuration = "transformProductionNeoForge")) { isTransitive = false } + + // Finish the configuration + setupConfigurations() +} + +tasks { + processResources { + inputs.property("version", project.version) + + filesMatching("META-INF/mods.toml") { + expand(getProperties()) + expand(mutableMapOf("version" to project.version)) + } + } +} diff --git a/neoforge/gradle.properties b/neoforge/gradle.properties new file mode 100644 index 000000000..7da18ea6f --- /dev/null +++ b/neoforge/gradle.properties @@ -0,0 +1 @@ +loom.platform=neoforge diff --git a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt new file mode 100644 index 000000000..5f109917c --- /dev/null +++ b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt @@ -0,0 +1,13 @@ +package com.lambda.neoforge + +import net.neoforged.fml.common.Mod +import com.lambda.Lambda +import com.lambda.Lambda.LOG + +@Mod(Lambda.MOD_ID) +object LambdaNeoForge { + init { + Lambda.initialize() + LOG.info("Lambda NeoForge initialized") + } +} diff --git a/neoforge/src/main/kotlin/com/lambda/neoforge/LoaderInfoImpl.kt b/neoforge/src/main/kotlin/com/lambda/neoforge/LoaderInfoImpl.kt new file mode 100644 index 000000000..cd81773e6 --- /dev/null +++ b/neoforge/src/main/kotlin/com/lambda/neoforge/LoaderInfoImpl.kt @@ -0,0 +1,10 @@ +package com.lambda.neoforge + +import net.neoforged.fml.loading.FMLLoader + + +object LoaderInfoImpl { + @JvmStatic + fun getVersion(): String = + FMLLoader.getLoadingModList().getModFileById("lambda").versionString() +} diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/mods.toml new file mode 100644 index 000000000..7ffe5d7e7 --- /dev/null +++ b/neoforge/src/main/resources/META-INF/mods.toml @@ -0,0 +1,33 @@ +modLoader = "kotlinforforge" +loaderVersion = "[4,)" +license = "GNU General Public License v3.0" + +[[mods]] +modId = "lambda" +version = "${version}" +displayName = "Lambda" +authors = "${authors}" +description = "${description}" +logoFile = "assets/lambda/lambda.png" +displayTest = "IGNORE_ALL_VERSION" + +[[dependencies.lambda]] +modId = "neoforge" +type = "required" +versionRange = "[20.2,)" +ordering = "NONE" +side = "CLIENT" + +[[dependencies.lambda]] +modId = "minecraft" +type = "required" +versionRange = "[1.20.2,1.21)" +ordering = "NONE" +side = "CLIENT" + +[[dependencies.lambda]] +modId = "kotlinforforge" +type = "required" +versionRange = "[4,)" +ordering = "AFTER" +side = "CLIENT" diff --git a/neoforge/src/main/resources/pack.mcmeta b/neoforge/src/main/resources/pack.mcmeta new file mode 100644 index 000000000..bcf1d9ead --- /dev/null +++ b/neoforge/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "lambda", + "pack_format": 9 + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 6b099e1b0..85b87a908 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,9 +1,7 @@ rootProject.name = "Lambda" pluginManagement { repositories { - maven("https://maven.fabricmc.net/") { - name = "Fabric" - } + maven("https://maven.fabricmc.net/") maven("https://maven.architectury.dev/") maven("https://maven.minecraftforge.net/") mavenCentral() @@ -14,3 +12,4 @@ pluginManagement { include("common") include("fabric") include("forge") +include("neoforge") From af8c6a15866f85abcbd5f629d8eae2eae1a9cc18 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 11:29:38 -0400 Subject: [PATCH 14/27] Refactor: Change module name to com.lambda.common --- .../mixin/ClientConnectionMixin.java | 6 +++--- .../lambda/{ => common}/mixin/KeyboardMixin.java | 6 +++--- .../{ => common}/mixin/MinecraftClientMixin.java | 6 +++--- .../kotlin/com/lambda/{ => common}/Lambda.kt | 10 +++++----- .../kotlin/com/lambda/{ => common}/LoaderInfo.kt | 4 ++-- .../{ => common}/context/AbstractContext.kt | 4 ++-- .../lambda/{ => common}/context/ClientContext.kt | 4 ++-- .../lambda/{ => common}/context/SafeContext.kt | 4 ++-- .../com/lambda/common/event/CallbackEvent.kt | 3 +++ .../main/kotlin/com/lambda/common/event/Event.kt | 3 +++ .../com/lambda/{ => common}/event/EventFlow.kt | 12 ++++-------- .../lambda/{ => common}/event/ICancellable.kt | 2 +- .../com/lambda/{ => common}/event/Subscriber.kt | 6 +++--- .../lambda/common/event/events/KeyPressEvent.kt | 6 ++++++ .../{ => common}/event/events/PacketEvent.kt | 10 +++++----- .../{ => common}/event/events/TickEvent.kt | 6 +++--- .../{ => common}/event/listener/Listener.kt | 7 +++---- .../{ => common}/event/listener/SafeListener.kt | 13 ++++++------- .../event/listener/UnsafeListener.kt | 8 +++----- .../kotlin/com/lambda/{ => common}/task/Task.kt | 15 ++++++++------- .../com/lambda/{ => common}/task/TaskResult.kt | 4 ++-- .../{ => common}/task/tasks/HelloWorldTask.kt | 14 +++++++------- .../lambda/{ => common}/threading/Threading.kt | 16 ++++++---------- .../kotlin/com/lambda/event/CallbackEvent.kt | 3 --- common/src/main/kotlin/com/lambda/event/Event.kt | 3 --- .../com/lambda/event/events/KeyPressEvent.kt | 6 ------ .../src/main/resources/lambda.mixins.common.json | 2 +- .../kotlin/com/lambda/fabric/LambdaFabric.kt | 4 ++-- .../main/kotlin/com/lambda/forge/LambdaForge.kt | 4 ++-- .../kotlin/com/lambda/neoforge/LambdaNeoForge.kt | 4 ++-- 30 files changed, 92 insertions(+), 103 deletions(-) rename common/src/main/java/com/lambda/{ => common}/mixin/ClientConnectionMixin.java (94%) rename common/src/main/java/com/lambda/{ => common}/mixin/KeyboardMixin.java (81%) rename common/src/main/java/com/lambda/{ => common}/mixin/MinecraftClientMixin.java (82%) rename common/src/main/kotlin/com/lambda/{ => common}/Lambda.kt (86%) rename common/src/main/kotlin/com/lambda/{ => common}/LoaderInfo.kt (88%) rename common/src/main/kotlin/com/lambda/{ => common}/context/AbstractContext.kt (94%) rename common/src/main/kotlin/com/lambda/{ => common}/context/ClientContext.kt (95%) rename common/src/main/kotlin/com/lambda/{ => common}/context/SafeContext.kt (89%) create mode 100644 common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt create mode 100644 common/src/main/kotlin/com/lambda/common/event/Event.kt rename common/src/main/kotlin/com/lambda/{ => common}/event/EventFlow.kt (92%) rename common/src/main/kotlin/com/lambda/{ => common}/event/ICancellable.kt (91%) rename common/src/main/kotlin/com/lambda/{ => common}/event/Subscriber.kt (92%) create mode 100644 common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt rename common/src/main/kotlin/com/lambda/{ => common}/event/events/PacketEvent.kt (73%) rename common/src/main/kotlin/com/lambda/{ => common}/event/events/TickEvent.kt (54%) rename common/src/main/kotlin/com/lambda/{ => common}/event/listener/Listener.kt (82%) rename common/src/main/kotlin/com/lambda/{ => common}/event/listener/SafeListener.kt (96%) rename common/src/main/kotlin/com/lambda/{ => common}/event/listener/UnsafeListener.kt (95%) rename common/src/main/kotlin/com/lambda/{ => common}/task/Task.kt (97%) rename common/src/main/kotlin/com/lambda/{ => common}/task/TaskResult.kt (96%) rename common/src/main/kotlin/com/lambda/{ => common}/task/tasks/HelloWorldTask.kt (57%) rename common/src/main/kotlin/com/lambda/{ => common}/threading/Threading.kt (91%) delete mode 100644 common/src/main/kotlin/com/lambda/event/CallbackEvent.kt delete mode 100644 common/src/main/kotlin/com/lambda/event/Event.kt delete mode 100644 common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt diff --git a/common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java b/common/src/main/java/com/lambda/common/mixin/ClientConnectionMixin.java similarity index 94% rename from common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java rename to common/src/main/java/com/lambda/common/mixin/ClientConnectionMixin.java index c48396813..f2840db72 100644 --- a/common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java +++ b/common/src/main/java/com/lambda/common/mixin/ClientConnectionMixin.java @@ -1,7 +1,7 @@ -package com.lambda.mixin; +package com.lambda.common.mixin; -import com.lambda.event.EventFlow; -import com.lambda.event.events.PacketEvent; +import com.lambda.common.event.EventFlow; +import com.lambda.common.event.events.PacketEvent; import io.netty.channel.ChannelHandlerContext; import net.minecraft.network.ClientConnection; import net.minecraft.network.NetworkSide; diff --git a/common/src/main/java/com/lambda/mixin/KeyboardMixin.java b/common/src/main/java/com/lambda/common/mixin/KeyboardMixin.java similarity index 81% rename from common/src/main/java/com/lambda/mixin/KeyboardMixin.java rename to common/src/main/java/com/lambda/common/mixin/KeyboardMixin.java index fd654edcc..662f8289f 100644 --- a/common/src/main/java/com/lambda/mixin/KeyboardMixin.java +++ b/common/src/main/java/com/lambda/common/mixin/KeyboardMixin.java @@ -1,7 +1,7 @@ -package com.lambda.mixin; +package com.lambda.common.mixin; -import com.lambda.event.EventFlow; -import com.lambda.event.events.KeyPressEvent; +import com.lambda.common.event.EventFlow; +import com.lambda.common.event.events.KeyPressEvent; import net.minecraft.client.Keyboard; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java b/common/src/main/java/com/lambda/common/mixin/MinecraftClientMixin.java similarity index 82% rename from common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java rename to common/src/main/java/com/lambda/common/mixin/MinecraftClientMixin.java index c7a4cc96a..dfa160ec0 100644 --- a/common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java +++ b/common/src/main/java/com/lambda/common/mixin/MinecraftClientMixin.java @@ -1,7 +1,7 @@ -package com.lambda.mixin; +package com.lambda.common.mixin; -import com.lambda.event.EventFlow; -import com.lambda.event.events.TickEvent; +import com.lambda.common.event.EventFlow; +import com.lambda.common.event.events.TickEvent; import net.minecraft.client.MinecraftClient; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/common/src/main/kotlin/com/lambda/Lambda.kt b/common/src/main/kotlin/com/lambda/common/Lambda.kt similarity index 86% rename from common/src/main/kotlin/com/lambda/Lambda.kt rename to common/src/main/kotlin/com/lambda/common/Lambda.kt index 1eca2eb50..3b0a74c86 100644 --- a/common/src/main/kotlin/com/lambda/Lambda.kt +++ b/common/src/main/kotlin/com/lambda/common/Lambda.kt @@ -1,9 +1,9 @@ -package com.lambda +package com.lambda.common -import com.lambda.event.events.KeyPressEvent -import com.lambda.event.listener.SafeListener.Companion.listener -import com.lambda.task.tasks.HelloWorldTask -import com.lambda.threading.taskContext +import com.lambda.common.event.events.KeyPressEvent +import com.lambda.common.event.listener.SafeListener.Companion.listener +import com.lambda.common.task.tasks.HelloWorldTask +import com.lambda.common.threading.taskContext import net.minecraft.client.MinecraftClient import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.Logger diff --git a/common/src/main/kotlin/com/lambda/LoaderInfo.kt b/common/src/main/kotlin/com/lambda/common/LoaderInfo.kt similarity index 88% rename from common/src/main/kotlin/com/lambda/LoaderInfo.kt rename to common/src/main/kotlin/com/lambda/common/LoaderInfo.kt index b23c6f272..fe2c8d0af 100644 --- a/common/src/main/kotlin/com/lambda/LoaderInfo.kt +++ b/common/src/main/kotlin/com/lambda/common/LoaderInfo.kt @@ -1,4 +1,4 @@ -package com.lambda +package com.lambda.common import dev.architectury.injectables.annotations.ExpectPlatform import org.jetbrains.annotations.Contract @@ -8,4 +8,4 @@ object LoaderInfo { @ExpectPlatform @JvmStatic fun getVersion(): String = "DEV" -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/context/AbstractContext.kt b/common/src/main/kotlin/com/lambda/common/context/AbstractContext.kt similarity index 94% rename from common/src/main/kotlin/com/lambda/context/AbstractContext.kt rename to common/src/main/kotlin/com/lambda/common/context/AbstractContext.kt index ea6d93fd1..f354053f8 100644 --- a/common/src/main/kotlin/com/lambda/context/AbstractContext.kt +++ b/common/src/main/kotlin/com/lambda/common/context/AbstractContext.kt @@ -1,4 +1,4 @@ -package com.lambda.context +package com.lambda.common.context import net.minecraft.client.MinecraftClient import net.minecraft.client.network.ClientPlayNetworkHandler @@ -12,4 +12,4 @@ abstract class AbstractContext { abstract val player: ClientPlayerEntity? abstract val interaction: ClientPlayerInteractionManager? abstract val connection: ClientPlayNetworkHandler? -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/context/ClientContext.kt b/common/src/main/kotlin/com/lambda/common/context/ClientContext.kt similarity index 95% rename from common/src/main/kotlin/com/lambda/context/ClientContext.kt rename to common/src/main/kotlin/com/lambda/common/context/ClientContext.kt index 9f9b2c56a..7751db2b8 100644 --- a/common/src/main/kotlin/com/lambda/context/ClientContext.kt +++ b/common/src/main/kotlin/com/lambda/common/context/ClientContext.kt @@ -1,4 +1,4 @@ -package com.lambda.context +package com.lambda.common.context import net.minecraft.client.network.ClientPlayNetworkHandler import net.minecraft.client.network.ClientPlayerEntity @@ -17,4 +17,4 @@ open class ClientContext : AbstractContext() { } return SafeContext(world, player, interaction, connection) } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/context/SafeContext.kt b/common/src/main/kotlin/com/lambda/common/context/SafeContext.kt similarity index 89% rename from common/src/main/kotlin/com/lambda/context/SafeContext.kt rename to common/src/main/kotlin/com/lambda/common/context/SafeContext.kt index e2bba5b9e..d076df9e9 100644 --- a/common/src/main/kotlin/com/lambda/context/SafeContext.kt +++ b/common/src/main/kotlin/com/lambda/common/context/SafeContext.kt @@ -1,4 +1,4 @@ -package com.lambda.context +package com.lambda.common.context import net.minecraft.client.network.ClientPlayNetworkHandler import net.minecraft.client.network.ClientPlayerEntity @@ -10,4 +10,4 @@ open class SafeContext internal constructor( override val player: ClientPlayerEntity, override val interaction: ClientPlayerInteractionManager, override val connection: ClientPlayNetworkHandler -) : AbstractContext() \ No newline at end of file +) : AbstractContext() diff --git a/common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt b/common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt new file mode 100644 index 000000000..7101dcad2 --- /dev/null +++ b/common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt @@ -0,0 +1,3 @@ +package com.lambda.common.event + +interface CallbackEvent : Event diff --git a/common/src/main/kotlin/com/lambda/common/event/Event.kt b/common/src/main/kotlin/com/lambda/common/event/Event.kt new file mode 100644 index 000000000..276b1d7b0 --- /dev/null +++ b/common/src/main/kotlin/com/lambda/common/event/Event.kt @@ -0,0 +1,3 @@ +package com.lambda.common.event + +interface Event diff --git a/common/src/main/kotlin/com/lambda/event/EventFlow.kt b/common/src/main/kotlin/com/lambda/common/event/EventFlow.kt similarity index 92% rename from common/src/main/kotlin/com/lambda/event/EventFlow.kt rename to common/src/main/kotlin/com/lambda/common/event/EventFlow.kt index b996523c8..3eafaa1f6 100644 --- a/common/src/main/kotlin/com/lambda/event/EventFlow.kt +++ b/common/src/main/kotlin/com/lambda/common/event/EventFlow.kt @@ -1,16 +1,12 @@ -package com.lambda.event +package com.lambda.common.event -import com.lambda.event.listener.Listener -import com.lambda.event.listener.SafeListener -import com.lambda.threading.runConcurrent +import com.lambda.common.event.listener.Listener +import com.lambda.common.threading.runConcurrent import kotlinx.coroutines.* import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filterNot -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.ConcurrentSkipListSet -import kotlin.reflect.KClass object EventFlow { /** @@ -91,4 +87,4 @@ object EventFlow { } } } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/event/ICancellable.kt b/common/src/main/kotlin/com/lambda/common/event/ICancellable.kt similarity index 91% rename from common/src/main/kotlin/com/lambda/event/ICancellable.kt rename to common/src/main/kotlin/com/lambda/common/event/ICancellable.kt index c307e3d78..7dd671413 100644 --- a/common/src/main/kotlin/com/lambda/event/ICancellable.kt +++ b/common/src/main/kotlin/com/lambda/common/event/ICancellable.kt @@ -1,4 +1,4 @@ -package com.lambda.event +package com.lambda.common.event import java.util.concurrent.atomic.AtomicBoolean diff --git a/common/src/main/kotlin/com/lambda/event/Subscriber.kt b/common/src/main/kotlin/com/lambda/common/event/Subscriber.kt similarity index 92% rename from common/src/main/kotlin/com/lambda/event/Subscriber.kt rename to common/src/main/kotlin/com/lambda/common/event/Subscriber.kt index c5e2a375d..735ad744e 100644 --- a/common/src/main/kotlin/com/lambda/event/Subscriber.kt +++ b/common/src/main/kotlin/com/lambda/common/event/Subscriber.kt @@ -1,6 +1,6 @@ -package com.lambda.event +package com.lambda.common.event -import com.lambda.event.listener.Listener +import com.lambda.common.event.listener.Listener import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentSkipListSet import kotlin.reflect.KClass @@ -33,4 +33,4 @@ class Subscriber : ConcurrentHashMap, ConcurrentSkipListSet> listeners.isEmpty() } } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt b/common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt new file mode 100644 index 000000000..b53e5fad9 --- /dev/null +++ b/common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt @@ -0,0 +1,6 @@ +package com.lambda.common.event.events + +import com.lambda.common.event.Cancellable +import com.lambda.common.event.ICancellable + +class KeyPressEvent(val key: Int): ICancellable by Cancellable() diff --git a/common/src/main/kotlin/com/lambda/event/events/PacketEvent.kt b/common/src/main/kotlin/com/lambda/common/event/events/PacketEvent.kt similarity index 73% rename from common/src/main/kotlin/com/lambda/event/events/PacketEvent.kt rename to common/src/main/kotlin/com/lambda/common/event/events/PacketEvent.kt index 2630ac044..1d2e8dd62 100644 --- a/common/src/main/kotlin/com/lambda/event/events/PacketEvent.kt +++ b/common/src/main/kotlin/com/lambda/common/event/events/PacketEvent.kt @@ -1,8 +1,8 @@ -package com.lambda.event.events +package com.lambda.common.event.events -import com.lambda.event.Cancellable -import com.lambda.event.ICancellable -import com.lambda.event.Event +import com.lambda.common.event.Cancellable +import com.lambda.common.event.Event +import com.lambda.common.event.ICancellable import net.minecraft.network.packet.Packet abstract class PacketEvent : Event { @@ -15,4 +15,4 @@ abstract class PacketEvent : Event { class Pre(val packet: Packet<*>) : Receive(), ICancellable by Cancellable() class Post(val packet: Packet<*>) : Receive() } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/event/events/TickEvent.kt b/common/src/main/kotlin/com/lambda/common/event/events/TickEvent.kt similarity index 54% rename from common/src/main/kotlin/com/lambda/event/events/TickEvent.kt rename to common/src/main/kotlin/com/lambda/common/event/events/TickEvent.kt index 523ae8f87..2b5bed47f 100644 --- a/common/src/main/kotlin/com/lambda/event/events/TickEvent.kt +++ b/common/src/main/kotlin/com/lambda/common/event/events/TickEvent.kt @@ -1,8 +1,8 @@ -package com.lambda.event.events +package com.lambda.common.event.events -import com.lambda.event.Event +import com.lambda.common.event.Event abstract class TickEvent : Event { class Pre : TickEvent() class Post : TickEvent() -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/event/listener/Listener.kt b/common/src/main/kotlin/com/lambda/common/event/listener/Listener.kt similarity index 82% rename from common/src/main/kotlin/com/lambda/event/listener/Listener.kt rename to common/src/main/kotlin/com/lambda/common/event/listener/Listener.kt index b8e9a12eb..f857fcae8 100644 --- a/common/src/main/kotlin/com/lambda/event/listener/Listener.kt +++ b/common/src/main/kotlin/com/lambda/common/event/listener/Listener.kt @@ -1,7 +1,6 @@ -package com.lambda.event.listener +package com.lambda.common.event.listener -import com.lambda.event.Event -import com.lambda.event.EventFlow +import com.lambda.common.event.Event abstract class Listener : Comparable { abstract val priority: Int @@ -16,4 +15,4 @@ abstract class Listener : Comparable { // Needed because ConcurrentSkipListSet handles insertion based on compareTo it.hashCode() }.compare(this, other) -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/event/listener/SafeListener.kt b/common/src/main/kotlin/com/lambda/common/event/listener/SafeListener.kt similarity index 96% rename from common/src/main/kotlin/com/lambda/event/listener/SafeListener.kt rename to common/src/main/kotlin/com/lambda/common/event/listener/SafeListener.kt index a63cce632..41c250b82 100644 --- a/common/src/main/kotlin/com/lambda/event/listener/SafeListener.kt +++ b/common/src/main/kotlin/com/lambda/common/event/listener/SafeListener.kt @@ -1,11 +1,10 @@ -package com.lambda.event.listener +package com.lambda.common.event.listener -import com.lambda.context.SafeContext -import com.lambda.event.Event -import com.lambda.event.EventFlow -import com.lambda.task.Task -import com.lambda.threading.runSafe -import java.util.concurrent.ConcurrentSkipListSet +import com.lambda.common.event.Event +import com.lambda.common.context.SafeContext +import com.lambda.common.event.EventFlow +import com.lambda.common.task.Task +import com.lambda.common.threading.runSafe class SafeListener( override val priority: Int = 0, diff --git a/common/src/main/kotlin/com/lambda/event/listener/UnsafeListener.kt b/common/src/main/kotlin/com/lambda/common/event/listener/UnsafeListener.kt similarity index 95% rename from common/src/main/kotlin/com/lambda/event/listener/UnsafeListener.kt rename to common/src/main/kotlin/com/lambda/common/event/listener/UnsafeListener.kt index 48f227fff..061535bda 100644 --- a/common/src/main/kotlin/com/lambda/event/listener/UnsafeListener.kt +++ b/common/src/main/kotlin/com/lambda/common/event/listener/UnsafeListener.kt @@ -1,9 +1,7 @@ -package com.lambda.event.listener +package com.lambda.common.event.listener -import com.lambda.event.Event -import com.lambda.event.EventFlow -import java.util.concurrent.ConcurrentSkipListSet -import kotlin.reflect.KClass +import com.lambda.common.event.Event +import com.lambda.common.event.EventFlow class UnsafeListener( override val priority: Int, diff --git a/common/src/main/kotlin/com/lambda/task/Task.kt b/common/src/main/kotlin/com/lambda/common/task/Task.kt similarity index 97% rename from common/src/main/kotlin/com/lambda/task/Task.kt rename to common/src/main/kotlin/com/lambda/common/task/Task.kt index 8151977e1..81344bb7d 100644 --- a/common/src/main/kotlin/com/lambda/task/Task.kt +++ b/common/src/main/kotlin/com/lambda/common/task/Task.kt @@ -1,10 +1,11 @@ -package com.lambda.task +package com.lambda.common.task -import com.lambda.Lambda.LOG -import com.lambda.context.SafeContext -import com.lambda.event.EventFlow -import com.lambda.event.Subscriber -import com.lambda.threading.runSafe +import com.lambda.common.Lambda.LOG +import com.lambda.common.context.SafeContext +import com.lambda.common.task.TaskResult +import com.lambda.common.event.EventFlow +import com.lambda.common.event.Subscriber +import com.lambda.common.threading.runSafe import kotlinx.coroutines.CancellationException import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.delay @@ -258,4 +259,4 @@ abstract class Task( this.onRepeat = action return this } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/task/TaskResult.kt b/common/src/main/kotlin/com/lambda/common/task/TaskResult.kt similarity index 96% rename from common/src/main/kotlin/com/lambda/task/TaskResult.kt rename to common/src/main/kotlin/com/lambda/common/task/TaskResult.kt index 401649683..e04bef7c1 100644 --- a/common/src/main/kotlin/com/lambda/task/TaskResult.kt +++ b/common/src/main/kotlin/com/lambda/common/task/TaskResult.kt @@ -1,4 +1,4 @@ -package com.lambda.task +package com.lambda.common.task /** * Represents the result of a task. @@ -34,4 +34,4 @@ sealed class TaskResult { * Represents a cancelled task result. */ data object Cancelled : TaskResult() -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/task/tasks/HelloWorldTask.kt b/common/src/main/kotlin/com/lambda/common/task/tasks/HelloWorldTask.kt similarity index 57% rename from common/src/main/kotlin/com/lambda/task/tasks/HelloWorldTask.kt rename to common/src/main/kotlin/com/lambda/common/task/tasks/HelloWorldTask.kt index d03aa5a14..9adeea26b 100644 --- a/common/src/main/kotlin/com/lambda/task/tasks/HelloWorldTask.kt +++ b/common/src/main/kotlin/com/lambda/common/task/tasks/HelloWorldTask.kt @@ -1,10 +1,10 @@ -package com.lambda.task.tasks +package com.lambda.common.task.tasks -import com.lambda.Lambda.LOG -import com.lambda.context.SafeContext -import com.lambda.event.events.TickEvent -import com.lambda.event.listener.SafeListener.Companion.listener -import com.lambda.task.Task +import com.lambda.common.Lambda.LOG +import com.lambda.common.context.SafeContext +import com.lambda.common.event.events.TickEvent +import com.lambda.common.event.listener.SafeListener.Companion.listener +import com.lambda.common.task.Task import kotlinx.coroutines.delay class HelloWorldTask : Task() { @@ -19,4 +19,4 @@ class HelloWorldTask : Task() { delay(250) LOG.info("Bye, World! Action completed") } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/threading/Threading.kt b/common/src/main/kotlin/com/lambda/common/threading/Threading.kt similarity index 91% rename from common/src/main/kotlin/com/lambda/threading/Threading.kt rename to common/src/main/kotlin/com/lambda/common/threading/Threading.kt index b8485c229..34bb1bdea 100644 --- a/common/src/main/kotlin/com/lambda/threading/Threading.kt +++ b/common/src/main/kotlin/com/lambda/common/threading/Threading.kt @@ -1,12 +1,8 @@ -package com.lambda.threading +package com.lambda.common.threading -import com.lambda.Lambda -import com.lambda.context.ClientContext -import com.lambda.event.EventFlow -import com.lambda.context.SafeContext -import kotlinx.coroutines.CancellationException -import kotlinx.coroutines.Deferred -import kotlinx.coroutines.async +import com.lambda.common.context.ClientContext +import com.lambda.common.event.EventFlow +import com.lambda.common.context.SafeContext import kotlinx.coroutines.launch /** @@ -76,7 +72,7 @@ inline fun runSafeConcurrent(crossinline block: SafeContext.() -> Unit) { * @param block The task to be executed on the game's main thread. */ inline fun runOnGameThread(crossinline block: () -> Unit) { - Lambda.mc.executeSync { block() } + com.lambda.common.Lambda.mc.executeSync { block() } } /** @@ -98,4 +94,4 @@ inline fun runOnGameThread(crossinline block: () -> Unit) { */ inline fun runSafeOnGameThread(crossinline block: SafeContext.() -> Unit) { runOnGameThread { runSafe { block() } } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/event/CallbackEvent.kt b/common/src/main/kotlin/com/lambda/event/CallbackEvent.kt deleted file mode 100644 index a18f68892..000000000 --- a/common/src/main/kotlin/com/lambda/event/CallbackEvent.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.lambda.event - -interface CallbackEvent : Event \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/event/Event.kt b/common/src/main/kotlin/com/lambda/event/Event.kt deleted file mode 100644 index a24779fc1..000000000 --- a/common/src/main/kotlin/com/lambda/event/Event.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.lambda.event - -interface Event \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt b/common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt deleted file mode 100644 index e80bbb05e..000000000 --- a/common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.lambda.event.events - -import com.lambda.event.Cancellable -import com.lambda.event.ICancellable - -class KeyPressEvent(val key: Int): ICancellable by Cancellable() \ No newline at end of file diff --git a/common/src/main/resources/lambda.mixins.common.json b/common/src/main/resources/lambda.mixins.common.json index f562fce23..7594fba79 100644 --- a/common/src/main/resources/lambda.mixins.common.json +++ b/common/src/main/resources/lambda.mixins.common.json @@ -1,7 +1,7 @@ { "required": true, "minVersion": "0.8", - "package": "com.lambda.mixin", + "package": "com.lambda.common.mixin", "compatibilityLevel": "JAVA_17", "client": [ "KeyboardMixin", diff --git a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt index 671ede2d9..54d65c4b5 100644 --- a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt +++ b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt @@ -1,8 +1,8 @@ package com.lambda.fabric import net.fabricmc.api.ClientModInitializer -import com.lambda.Lambda -import com.lambda.Lambda.LOG +import com.lambda.common.Lambda +import com.lambda.common.Lambda.LOG object LambdaFabric : ClientModInitializer { override fun onInitializeClient() { diff --git a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt index 08668c24d..621e013b2 100644 --- a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt +++ b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt @@ -1,8 +1,8 @@ package com.lambda.forge import net.minecraftforge.fml.common.Mod -import com.lambda.Lambda -import com.lambda.Lambda.LOG +import com.lambda.common.Lambda +import com.lambda.common.Lambda.LOG @Mod(Lambda.MOD_ID) object LambdaForge { diff --git a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt index 5f109917c..b638cb783 100644 --- a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt +++ b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt @@ -1,8 +1,8 @@ package com.lambda.neoforge import net.neoforged.fml.common.Mod -import com.lambda.Lambda -import com.lambda.Lambda.LOG +import com.lambda.common.Lambda +import com.lambda.common.Lambda.LOG @Mod(Lambda.MOD_ID) object LambdaNeoForge { From 492a3150cb9070643037a5f86699f16bf78cb875 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 11:54:26 -0400 Subject: [PATCH 15/27] Fix: Forge dev env --- .../main/kotlin/com/lambda/common/Lambda.kt | 2 +- forge/build.gradle.kts | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/common/src/main/kotlin/com/lambda/common/Lambda.kt b/common/src/main/kotlin/com/lambda/common/Lambda.kt index 3b0a74c86..e6b80f84a 100644 --- a/common/src/main/kotlin/com/lambda/common/Lambda.kt +++ b/common/src/main/kotlin/com/lambda/common/Lambda.kt @@ -16,7 +16,7 @@ object Lambda { private val VERSION: String = LoaderInfo.getVersion() val LOG: Logger = LogManager.getLogger(SYMBOL) - val mc: MinecraftClient = MinecraftClient.getInstance() + val mc: MinecraftClient by lazy { MinecraftClient.getInstance() } init { listener { diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index e8d9c688e..1a29e62fe 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -11,11 +11,18 @@ base.archivesName.set("${base.archivesName.get()}-forge") loom { accessWidenerPath.set(project(":common").loom.accessWidenerPath) + forge { convertAccessWideners = true extraAccessWideners.add(loom.accessWidenerPath.get().asFile.name) mixinConfig("lambda.mixins.common.json") } + + mods { + register("forge") { + sourceSet("main", project(":forge")) + } + } } repositories { @@ -49,19 +56,18 @@ dependencies { forge("net.minecraftforge:forge:$forgeVersion") // Add dependencies on the required Kotlin modules. - includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") - includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") { isTransitive = false } + includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") { isTransitive = false } // Add mods to the mod jar - // includeMod(...) + includeMod("thedarkcolour:kotlinforforge:$kotlinForgeVersion") // Both a library and a mod + + compileOnly(kotlin("stdlib")) // Hacky fix https://github.com/thedarkcolour/KotlinForForge/issues/93 // Common (Do not touch) - common(project(":common", configuration = "namedElements")) { isTransitive = false } + implementation(project(":common", configuration = "namedElements")) { isTransitive = false } // We cannot common here because it is treated as a different mod and forge will panic shadowCommon(project(path = ":common", configuration = "transformProductionForge")) { isTransitive = false } - // KFF Fix - compileOnly(kotlin("stdlib")) // Hacky fix https://github.com/thedarkcolour/KotlinForForge/issues/93 - // Finish the configuration setupConfigurations() } From 60a65511ef8b7ab957423b7dff04c070861ccef2 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 11:59:11 -0400 Subject: [PATCH 16/27] Revert "Refactor: Change module name to com.lambda.common" This reverts commit af8c6a15866f85abcbd5f629d8eae2eae1a9cc18. --- .../mixin/ClientConnectionMixin.java | 6 +++--- .../lambda/{common => }/mixin/KeyboardMixin.java | 6 +++--- .../{common => }/mixin/MinecraftClientMixin.java | 6 +++--- .../kotlin/com/lambda/{common => }/Lambda.kt | 10 +++++----- .../kotlin/com/lambda/{common => }/LoaderInfo.kt | 4 ++-- .../com/lambda/common/event/CallbackEvent.kt | 3 --- .../main/kotlin/com/lambda/common/event/Event.kt | 3 --- .../lambda/common/event/events/KeyPressEvent.kt | 6 ------ .../{common => }/context/AbstractContext.kt | 4 ++-- .../lambda/{common => }/context/ClientContext.kt | 4 ++-- .../lambda/{common => }/context/SafeContext.kt | 4 ++-- .../kotlin/com/lambda/event/CallbackEvent.kt | 3 +++ common/src/main/kotlin/com/lambda/event/Event.kt | 3 +++ .../com/lambda/{common => }/event/EventFlow.kt | 12 ++++++++---- .../lambda/{common => }/event/ICancellable.kt | 2 +- .../com/lambda/{common => }/event/Subscriber.kt | 6 +++--- .../com/lambda/event/events/KeyPressEvent.kt | 6 ++++++ .../{common => }/event/events/PacketEvent.kt | 10 +++++----- .../{common => }/event/events/TickEvent.kt | 6 +++--- .../{common => }/event/listener/Listener.kt | 7 ++++--- .../{common => }/event/listener/SafeListener.kt | 13 +++++++------ .../event/listener/UnsafeListener.kt | 8 +++++--- .../kotlin/com/lambda/{common => }/task/Task.kt | 15 +++++++-------- .../com/lambda/{common => }/task/TaskResult.kt | 4 ++-- .../{common => }/task/tasks/HelloWorldTask.kt | 14 +++++++------- .../lambda/{common => }/threading/Threading.kt | 16 ++++++++++------ .../src/main/resources/lambda.mixins.common.json | 2 +- .../kotlin/com/lambda/fabric/LambdaFabric.kt | 4 ++-- .../main/kotlin/com/lambda/forge/LambdaForge.kt | 4 ++-- .../kotlin/com/lambda/neoforge/LambdaNeoForge.kt | 4 ++-- 30 files changed, 103 insertions(+), 92 deletions(-) rename common/src/main/java/com/lambda/{common => }/mixin/ClientConnectionMixin.java (94%) rename common/src/main/java/com/lambda/{common => }/mixin/KeyboardMixin.java (81%) rename common/src/main/java/com/lambda/{common => }/mixin/MinecraftClientMixin.java (82%) rename common/src/main/kotlin/com/lambda/{common => }/Lambda.kt (86%) rename common/src/main/kotlin/com/lambda/{common => }/LoaderInfo.kt (88%) delete mode 100644 common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt delete mode 100644 common/src/main/kotlin/com/lambda/common/event/Event.kt delete mode 100644 common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt rename common/src/main/kotlin/com/lambda/{common => }/context/AbstractContext.kt (94%) rename common/src/main/kotlin/com/lambda/{common => }/context/ClientContext.kt (95%) rename common/src/main/kotlin/com/lambda/{common => }/context/SafeContext.kt (89%) create mode 100644 common/src/main/kotlin/com/lambda/event/CallbackEvent.kt create mode 100644 common/src/main/kotlin/com/lambda/event/Event.kt rename common/src/main/kotlin/com/lambda/{common => }/event/EventFlow.kt (92%) rename common/src/main/kotlin/com/lambda/{common => }/event/ICancellable.kt (91%) rename common/src/main/kotlin/com/lambda/{common => }/event/Subscriber.kt (92%) create mode 100644 common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt rename common/src/main/kotlin/com/lambda/{common => }/event/events/PacketEvent.kt (73%) rename common/src/main/kotlin/com/lambda/{common => }/event/events/TickEvent.kt (54%) rename common/src/main/kotlin/com/lambda/{common => }/event/listener/Listener.kt (82%) rename common/src/main/kotlin/com/lambda/{common => }/event/listener/SafeListener.kt (96%) rename common/src/main/kotlin/com/lambda/{common => }/event/listener/UnsafeListener.kt (95%) rename common/src/main/kotlin/com/lambda/{common => }/task/Task.kt (97%) rename common/src/main/kotlin/com/lambda/{common => }/task/TaskResult.kt (96%) rename common/src/main/kotlin/com/lambda/{common => }/task/tasks/HelloWorldTask.kt (57%) rename common/src/main/kotlin/com/lambda/{common => }/threading/Threading.kt (91%) diff --git a/common/src/main/java/com/lambda/common/mixin/ClientConnectionMixin.java b/common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java similarity index 94% rename from common/src/main/java/com/lambda/common/mixin/ClientConnectionMixin.java rename to common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java index f2840db72..c48396813 100644 --- a/common/src/main/java/com/lambda/common/mixin/ClientConnectionMixin.java +++ b/common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java @@ -1,7 +1,7 @@ -package com.lambda.common.mixin; +package com.lambda.mixin; -import com.lambda.common.event.EventFlow; -import com.lambda.common.event.events.PacketEvent; +import com.lambda.event.EventFlow; +import com.lambda.event.events.PacketEvent; import io.netty.channel.ChannelHandlerContext; import net.minecraft.network.ClientConnection; import net.minecraft.network.NetworkSide; diff --git a/common/src/main/java/com/lambda/common/mixin/KeyboardMixin.java b/common/src/main/java/com/lambda/mixin/KeyboardMixin.java similarity index 81% rename from common/src/main/java/com/lambda/common/mixin/KeyboardMixin.java rename to common/src/main/java/com/lambda/mixin/KeyboardMixin.java index 662f8289f..fd654edcc 100644 --- a/common/src/main/java/com/lambda/common/mixin/KeyboardMixin.java +++ b/common/src/main/java/com/lambda/mixin/KeyboardMixin.java @@ -1,7 +1,7 @@ -package com.lambda.common.mixin; +package com.lambda.mixin; -import com.lambda.common.event.EventFlow; -import com.lambda.common.event.events.KeyPressEvent; +import com.lambda.event.EventFlow; +import com.lambda.event.events.KeyPressEvent; import net.minecraft.client.Keyboard; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/common/src/main/java/com/lambda/common/mixin/MinecraftClientMixin.java b/common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java similarity index 82% rename from common/src/main/java/com/lambda/common/mixin/MinecraftClientMixin.java rename to common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java index dfa160ec0..c7a4cc96a 100644 --- a/common/src/main/java/com/lambda/common/mixin/MinecraftClientMixin.java +++ b/common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java @@ -1,7 +1,7 @@ -package com.lambda.common.mixin; +package com.lambda.mixin; -import com.lambda.common.event.EventFlow; -import com.lambda.common.event.events.TickEvent; +import com.lambda.event.EventFlow; +import com.lambda.event.events.TickEvent; import net.minecraft.client.MinecraftClient; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/common/src/main/kotlin/com/lambda/common/Lambda.kt b/common/src/main/kotlin/com/lambda/Lambda.kt similarity index 86% rename from common/src/main/kotlin/com/lambda/common/Lambda.kt rename to common/src/main/kotlin/com/lambda/Lambda.kt index e6b80f84a..334f7f5da 100644 --- a/common/src/main/kotlin/com/lambda/common/Lambda.kt +++ b/common/src/main/kotlin/com/lambda/Lambda.kt @@ -1,9 +1,9 @@ -package com.lambda.common +package com.lambda -import com.lambda.common.event.events.KeyPressEvent -import com.lambda.common.event.listener.SafeListener.Companion.listener -import com.lambda.common.task.tasks.HelloWorldTask -import com.lambda.common.threading.taskContext +import com.lambda.event.events.KeyPressEvent +import com.lambda.event.listener.SafeListener.Companion.listener +import com.lambda.task.tasks.HelloWorldTask +import com.lambda.threading.taskContext import net.minecraft.client.MinecraftClient import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.Logger diff --git a/common/src/main/kotlin/com/lambda/common/LoaderInfo.kt b/common/src/main/kotlin/com/lambda/LoaderInfo.kt similarity index 88% rename from common/src/main/kotlin/com/lambda/common/LoaderInfo.kt rename to common/src/main/kotlin/com/lambda/LoaderInfo.kt index fe2c8d0af..b23c6f272 100644 --- a/common/src/main/kotlin/com/lambda/common/LoaderInfo.kt +++ b/common/src/main/kotlin/com/lambda/LoaderInfo.kt @@ -1,4 +1,4 @@ -package com.lambda.common +package com.lambda import dev.architectury.injectables.annotations.ExpectPlatform import org.jetbrains.annotations.Contract @@ -8,4 +8,4 @@ object LoaderInfo { @ExpectPlatform @JvmStatic fun getVersion(): String = "DEV" -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt b/common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt deleted file mode 100644 index 7101dcad2..000000000 --- a/common/src/main/kotlin/com/lambda/common/event/CallbackEvent.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.lambda.common.event - -interface CallbackEvent : Event diff --git a/common/src/main/kotlin/com/lambda/common/event/Event.kt b/common/src/main/kotlin/com/lambda/common/event/Event.kt deleted file mode 100644 index 276b1d7b0..000000000 --- a/common/src/main/kotlin/com/lambda/common/event/Event.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.lambda.common.event - -interface Event diff --git a/common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt b/common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt deleted file mode 100644 index b53e5fad9..000000000 --- a/common/src/main/kotlin/com/lambda/common/event/events/KeyPressEvent.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.lambda.common.event.events - -import com.lambda.common.event.Cancellable -import com.lambda.common.event.ICancellable - -class KeyPressEvent(val key: Int): ICancellable by Cancellable() diff --git a/common/src/main/kotlin/com/lambda/common/context/AbstractContext.kt b/common/src/main/kotlin/com/lambda/context/AbstractContext.kt similarity index 94% rename from common/src/main/kotlin/com/lambda/common/context/AbstractContext.kt rename to common/src/main/kotlin/com/lambda/context/AbstractContext.kt index f354053f8..ea6d93fd1 100644 --- a/common/src/main/kotlin/com/lambda/common/context/AbstractContext.kt +++ b/common/src/main/kotlin/com/lambda/context/AbstractContext.kt @@ -1,4 +1,4 @@ -package com.lambda.common.context +package com.lambda.context import net.minecraft.client.MinecraftClient import net.minecraft.client.network.ClientPlayNetworkHandler @@ -12,4 +12,4 @@ abstract class AbstractContext { abstract val player: ClientPlayerEntity? abstract val interaction: ClientPlayerInteractionManager? abstract val connection: ClientPlayNetworkHandler? -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/context/ClientContext.kt b/common/src/main/kotlin/com/lambda/context/ClientContext.kt similarity index 95% rename from common/src/main/kotlin/com/lambda/common/context/ClientContext.kt rename to common/src/main/kotlin/com/lambda/context/ClientContext.kt index 7751db2b8..9f9b2c56a 100644 --- a/common/src/main/kotlin/com/lambda/common/context/ClientContext.kt +++ b/common/src/main/kotlin/com/lambda/context/ClientContext.kt @@ -1,4 +1,4 @@ -package com.lambda.common.context +package com.lambda.context import net.minecraft.client.network.ClientPlayNetworkHandler import net.minecraft.client.network.ClientPlayerEntity @@ -17,4 +17,4 @@ open class ClientContext : AbstractContext() { } return SafeContext(world, player, interaction, connection) } -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/context/SafeContext.kt b/common/src/main/kotlin/com/lambda/context/SafeContext.kt similarity index 89% rename from common/src/main/kotlin/com/lambda/common/context/SafeContext.kt rename to common/src/main/kotlin/com/lambda/context/SafeContext.kt index d076df9e9..e2bba5b9e 100644 --- a/common/src/main/kotlin/com/lambda/common/context/SafeContext.kt +++ b/common/src/main/kotlin/com/lambda/context/SafeContext.kt @@ -1,4 +1,4 @@ -package com.lambda.common.context +package com.lambda.context import net.minecraft.client.network.ClientPlayNetworkHandler import net.minecraft.client.network.ClientPlayerEntity @@ -10,4 +10,4 @@ open class SafeContext internal constructor( override val player: ClientPlayerEntity, override val interaction: ClientPlayerInteractionManager, override val connection: ClientPlayNetworkHandler -) : AbstractContext() +) : AbstractContext() \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/event/CallbackEvent.kt b/common/src/main/kotlin/com/lambda/event/CallbackEvent.kt new file mode 100644 index 000000000..a18f68892 --- /dev/null +++ b/common/src/main/kotlin/com/lambda/event/CallbackEvent.kt @@ -0,0 +1,3 @@ +package com.lambda.event + +interface CallbackEvent : Event \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/event/Event.kt b/common/src/main/kotlin/com/lambda/event/Event.kt new file mode 100644 index 000000000..a24779fc1 --- /dev/null +++ b/common/src/main/kotlin/com/lambda/event/Event.kt @@ -0,0 +1,3 @@ +package com.lambda.event + +interface Event \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/EventFlow.kt b/common/src/main/kotlin/com/lambda/event/EventFlow.kt similarity index 92% rename from common/src/main/kotlin/com/lambda/common/event/EventFlow.kt rename to common/src/main/kotlin/com/lambda/event/EventFlow.kt index 3eafaa1f6..b996523c8 100644 --- a/common/src/main/kotlin/com/lambda/common/event/EventFlow.kt +++ b/common/src/main/kotlin/com/lambda/event/EventFlow.kt @@ -1,12 +1,16 @@ -package com.lambda.common.event +package com.lambda.event -import com.lambda.common.event.listener.Listener -import com.lambda.common.threading.runConcurrent +import com.lambda.event.listener.Listener +import com.lambda.event.listener.SafeListener +import com.lambda.threading.runConcurrent import kotlinx.coroutines.* import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filterNot +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.ConcurrentSkipListSet +import kotlin.reflect.KClass object EventFlow { /** @@ -87,4 +91,4 @@ object EventFlow { } } } -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/ICancellable.kt b/common/src/main/kotlin/com/lambda/event/ICancellable.kt similarity index 91% rename from common/src/main/kotlin/com/lambda/common/event/ICancellable.kt rename to common/src/main/kotlin/com/lambda/event/ICancellable.kt index 7dd671413..c307e3d78 100644 --- a/common/src/main/kotlin/com/lambda/common/event/ICancellable.kt +++ b/common/src/main/kotlin/com/lambda/event/ICancellable.kt @@ -1,4 +1,4 @@ -package com.lambda.common.event +package com.lambda.event import java.util.concurrent.atomic.AtomicBoolean diff --git a/common/src/main/kotlin/com/lambda/common/event/Subscriber.kt b/common/src/main/kotlin/com/lambda/event/Subscriber.kt similarity index 92% rename from common/src/main/kotlin/com/lambda/common/event/Subscriber.kt rename to common/src/main/kotlin/com/lambda/event/Subscriber.kt index 735ad744e..c5e2a375d 100644 --- a/common/src/main/kotlin/com/lambda/common/event/Subscriber.kt +++ b/common/src/main/kotlin/com/lambda/event/Subscriber.kt @@ -1,6 +1,6 @@ -package com.lambda.common.event +package com.lambda.event -import com.lambda.common.event.listener.Listener +import com.lambda.event.listener.Listener import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentSkipListSet import kotlin.reflect.KClass @@ -33,4 +33,4 @@ class Subscriber : ConcurrentHashMap, ConcurrentSkipListSet> listeners.isEmpty() } } -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt b/common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt new file mode 100644 index 000000000..e80bbb05e --- /dev/null +++ b/common/src/main/kotlin/com/lambda/event/events/KeyPressEvent.kt @@ -0,0 +1,6 @@ +package com.lambda.event.events + +import com.lambda.event.Cancellable +import com.lambda.event.ICancellable + +class KeyPressEvent(val key: Int): ICancellable by Cancellable() \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/events/PacketEvent.kt b/common/src/main/kotlin/com/lambda/event/events/PacketEvent.kt similarity index 73% rename from common/src/main/kotlin/com/lambda/common/event/events/PacketEvent.kt rename to common/src/main/kotlin/com/lambda/event/events/PacketEvent.kt index 1d2e8dd62..2630ac044 100644 --- a/common/src/main/kotlin/com/lambda/common/event/events/PacketEvent.kt +++ b/common/src/main/kotlin/com/lambda/event/events/PacketEvent.kt @@ -1,8 +1,8 @@ -package com.lambda.common.event.events +package com.lambda.event.events -import com.lambda.common.event.Cancellable -import com.lambda.common.event.Event -import com.lambda.common.event.ICancellable +import com.lambda.event.Cancellable +import com.lambda.event.ICancellable +import com.lambda.event.Event import net.minecraft.network.packet.Packet abstract class PacketEvent : Event { @@ -15,4 +15,4 @@ abstract class PacketEvent : Event { class Pre(val packet: Packet<*>) : Receive(), ICancellable by Cancellable() class Post(val packet: Packet<*>) : Receive() } -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/events/TickEvent.kt b/common/src/main/kotlin/com/lambda/event/events/TickEvent.kt similarity index 54% rename from common/src/main/kotlin/com/lambda/common/event/events/TickEvent.kt rename to common/src/main/kotlin/com/lambda/event/events/TickEvent.kt index 2b5bed47f..523ae8f87 100644 --- a/common/src/main/kotlin/com/lambda/common/event/events/TickEvent.kt +++ b/common/src/main/kotlin/com/lambda/event/events/TickEvent.kt @@ -1,8 +1,8 @@ -package com.lambda.common.event.events +package com.lambda.event.events -import com.lambda.common.event.Event +import com.lambda.event.Event abstract class TickEvent : Event { class Pre : TickEvent() class Post : TickEvent() -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/listener/Listener.kt b/common/src/main/kotlin/com/lambda/event/listener/Listener.kt similarity index 82% rename from common/src/main/kotlin/com/lambda/common/event/listener/Listener.kt rename to common/src/main/kotlin/com/lambda/event/listener/Listener.kt index f857fcae8..b8e9a12eb 100644 --- a/common/src/main/kotlin/com/lambda/common/event/listener/Listener.kt +++ b/common/src/main/kotlin/com/lambda/event/listener/Listener.kt @@ -1,6 +1,7 @@ -package com.lambda.common.event.listener +package com.lambda.event.listener -import com.lambda.common.event.Event +import com.lambda.event.Event +import com.lambda.event.EventFlow abstract class Listener : Comparable { abstract val priority: Int @@ -15,4 +16,4 @@ abstract class Listener : Comparable { // Needed because ConcurrentSkipListSet handles insertion based on compareTo it.hashCode() }.compare(this, other) -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/event/listener/SafeListener.kt b/common/src/main/kotlin/com/lambda/event/listener/SafeListener.kt similarity index 96% rename from common/src/main/kotlin/com/lambda/common/event/listener/SafeListener.kt rename to common/src/main/kotlin/com/lambda/event/listener/SafeListener.kt index 41c250b82..a63cce632 100644 --- a/common/src/main/kotlin/com/lambda/common/event/listener/SafeListener.kt +++ b/common/src/main/kotlin/com/lambda/event/listener/SafeListener.kt @@ -1,10 +1,11 @@ -package com.lambda.common.event.listener +package com.lambda.event.listener -import com.lambda.common.event.Event -import com.lambda.common.context.SafeContext -import com.lambda.common.event.EventFlow -import com.lambda.common.task.Task -import com.lambda.common.threading.runSafe +import com.lambda.context.SafeContext +import com.lambda.event.Event +import com.lambda.event.EventFlow +import com.lambda.task.Task +import com.lambda.threading.runSafe +import java.util.concurrent.ConcurrentSkipListSet class SafeListener( override val priority: Int = 0, diff --git a/common/src/main/kotlin/com/lambda/common/event/listener/UnsafeListener.kt b/common/src/main/kotlin/com/lambda/event/listener/UnsafeListener.kt similarity index 95% rename from common/src/main/kotlin/com/lambda/common/event/listener/UnsafeListener.kt rename to common/src/main/kotlin/com/lambda/event/listener/UnsafeListener.kt index 061535bda..48f227fff 100644 --- a/common/src/main/kotlin/com/lambda/common/event/listener/UnsafeListener.kt +++ b/common/src/main/kotlin/com/lambda/event/listener/UnsafeListener.kt @@ -1,7 +1,9 @@ -package com.lambda.common.event.listener +package com.lambda.event.listener -import com.lambda.common.event.Event -import com.lambda.common.event.EventFlow +import com.lambda.event.Event +import com.lambda.event.EventFlow +import java.util.concurrent.ConcurrentSkipListSet +import kotlin.reflect.KClass class UnsafeListener( override val priority: Int, diff --git a/common/src/main/kotlin/com/lambda/common/task/Task.kt b/common/src/main/kotlin/com/lambda/task/Task.kt similarity index 97% rename from common/src/main/kotlin/com/lambda/common/task/Task.kt rename to common/src/main/kotlin/com/lambda/task/Task.kt index 81344bb7d..8151977e1 100644 --- a/common/src/main/kotlin/com/lambda/common/task/Task.kt +++ b/common/src/main/kotlin/com/lambda/task/Task.kt @@ -1,11 +1,10 @@ -package com.lambda.common.task +package com.lambda.task -import com.lambda.common.Lambda.LOG -import com.lambda.common.context.SafeContext -import com.lambda.common.task.TaskResult -import com.lambda.common.event.EventFlow -import com.lambda.common.event.Subscriber -import com.lambda.common.threading.runSafe +import com.lambda.Lambda.LOG +import com.lambda.context.SafeContext +import com.lambda.event.EventFlow +import com.lambda.event.Subscriber +import com.lambda.threading.runSafe import kotlinx.coroutines.CancellationException import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.delay @@ -259,4 +258,4 @@ abstract class Task( this.onRepeat = action return this } -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/task/TaskResult.kt b/common/src/main/kotlin/com/lambda/task/TaskResult.kt similarity index 96% rename from common/src/main/kotlin/com/lambda/common/task/TaskResult.kt rename to common/src/main/kotlin/com/lambda/task/TaskResult.kt index e04bef7c1..401649683 100644 --- a/common/src/main/kotlin/com/lambda/common/task/TaskResult.kt +++ b/common/src/main/kotlin/com/lambda/task/TaskResult.kt @@ -1,4 +1,4 @@ -package com.lambda.common.task +package com.lambda.task /** * Represents the result of a task. @@ -34,4 +34,4 @@ sealed class TaskResult { * Represents a cancelled task result. */ data object Cancelled : TaskResult() -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/task/tasks/HelloWorldTask.kt b/common/src/main/kotlin/com/lambda/task/tasks/HelloWorldTask.kt similarity index 57% rename from common/src/main/kotlin/com/lambda/common/task/tasks/HelloWorldTask.kt rename to common/src/main/kotlin/com/lambda/task/tasks/HelloWorldTask.kt index 9adeea26b..d03aa5a14 100644 --- a/common/src/main/kotlin/com/lambda/common/task/tasks/HelloWorldTask.kt +++ b/common/src/main/kotlin/com/lambda/task/tasks/HelloWorldTask.kt @@ -1,10 +1,10 @@ -package com.lambda.common.task.tasks +package com.lambda.task.tasks -import com.lambda.common.Lambda.LOG -import com.lambda.common.context.SafeContext -import com.lambda.common.event.events.TickEvent -import com.lambda.common.event.listener.SafeListener.Companion.listener -import com.lambda.common.task.Task +import com.lambda.Lambda.LOG +import com.lambda.context.SafeContext +import com.lambda.event.events.TickEvent +import com.lambda.event.listener.SafeListener.Companion.listener +import com.lambda.task.Task import kotlinx.coroutines.delay class HelloWorldTask : Task() { @@ -19,4 +19,4 @@ class HelloWorldTask : Task() { delay(250) LOG.info("Bye, World! Action completed") } -} +} \ No newline at end of file diff --git a/common/src/main/kotlin/com/lambda/common/threading/Threading.kt b/common/src/main/kotlin/com/lambda/threading/Threading.kt similarity index 91% rename from common/src/main/kotlin/com/lambda/common/threading/Threading.kt rename to common/src/main/kotlin/com/lambda/threading/Threading.kt index 34bb1bdea..b8485c229 100644 --- a/common/src/main/kotlin/com/lambda/common/threading/Threading.kt +++ b/common/src/main/kotlin/com/lambda/threading/Threading.kt @@ -1,8 +1,12 @@ -package com.lambda.common.threading +package com.lambda.threading -import com.lambda.common.context.ClientContext -import com.lambda.common.event.EventFlow -import com.lambda.common.context.SafeContext +import com.lambda.Lambda +import com.lambda.context.ClientContext +import com.lambda.event.EventFlow +import com.lambda.context.SafeContext +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.async import kotlinx.coroutines.launch /** @@ -72,7 +76,7 @@ inline fun runSafeConcurrent(crossinline block: SafeContext.() -> Unit) { * @param block The task to be executed on the game's main thread. */ inline fun runOnGameThread(crossinline block: () -> Unit) { - com.lambda.common.Lambda.mc.executeSync { block() } + Lambda.mc.executeSync { block() } } /** @@ -94,4 +98,4 @@ inline fun runOnGameThread(crossinline block: () -> Unit) { */ inline fun runSafeOnGameThread(crossinline block: SafeContext.() -> Unit) { runOnGameThread { runSafe { block() } } -} +} \ No newline at end of file diff --git a/common/src/main/resources/lambda.mixins.common.json b/common/src/main/resources/lambda.mixins.common.json index 7594fba79..f562fce23 100644 --- a/common/src/main/resources/lambda.mixins.common.json +++ b/common/src/main/resources/lambda.mixins.common.json @@ -1,7 +1,7 @@ { "required": true, "minVersion": "0.8", - "package": "com.lambda.common.mixin", + "package": "com.lambda.mixin", "compatibilityLevel": "JAVA_17", "client": [ "KeyboardMixin", diff --git a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt index 54d65c4b5..671ede2d9 100644 --- a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt +++ b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt @@ -1,8 +1,8 @@ package com.lambda.fabric import net.fabricmc.api.ClientModInitializer -import com.lambda.common.Lambda -import com.lambda.common.Lambda.LOG +import com.lambda.Lambda +import com.lambda.Lambda.LOG object LambdaFabric : ClientModInitializer { override fun onInitializeClient() { diff --git a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt index 621e013b2..08668c24d 100644 --- a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt +++ b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt @@ -1,8 +1,8 @@ package com.lambda.forge import net.minecraftforge.fml.common.Mod -import com.lambda.common.Lambda -import com.lambda.common.Lambda.LOG +import com.lambda.Lambda +import com.lambda.Lambda.LOG @Mod(Lambda.MOD_ID) object LambdaForge { diff --git a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt index b638cb783..5f109917c 100644 --- a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt +++ b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt @@ -1,8 +1,8 @@ package com.lambda.neoforge import net.neoforged.fml.common.Mod -import com.lambda.common.Lambda -import com.lambda.common.Lambda.LOG +import com.lambda.Lambda +import com.lambda.Lambda.LOG @Mod(Lambda.MOD_ID) object LambdaNeoForge { From 783a9ee31169fffe5e61a7d02f3ae6a55b9b0908 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 12:08:04 -0400 Subject: [PATCH 17/27] Removed comment --- common/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 4ca7a3561..0125ecd0f 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -25,8 +25,6 @@ dependencies { // Add dependencies on the required Kotlin modules. modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) - - // Baritone } // Avoid nested jars From 35305c74859402d7aa74b15c1606bd02b8b0bf11 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:37:50 -0400 Subject: [PATCH 18/27] Fix: Crash at launch --- .../com/lambda/module/modules/BoringModule.kt | 4 ++-- .../kotlin/com/lambda/util/FolderRegister.kt | 5 ++--- forge/build.gradle.kts | 20 ++++++++----------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/common/src/main/kotlin/com/lambda/module/modules/BoringModule.kt b/common/src/main/kotlin/com/lambda/module/modules/BoringModule.kt index af78781d3..3d0af3e79 100644 --- a/common/src/main/kotlin/com/lambda/module/modules/BoringModule.kt +++ b/common/src/main/kotlin/com/lambda/module/modules/BoringModule.kt @@ -24,7 +24,7 @@ object BoringModule : Module( mapOf("One" to 1, "Two" to 2, "Three" to 3, "Four" to 4, "Five" to 5) ) private val boringEnum by setting("Boring Enum", BoringEnum.ONE) - private val blockSetting by setting("Boring Block", Blocks.STONE) + //private val blockSetting by setting("Boring Block", Blocks.STONE) // Registries are not initialized yet private val blockPosSetting by setting("Boring BlockPos", BlockPos(420, 69, 1337)) // private val blockListSetting by setting("Boring Block List", listOf(Blocks.STONE, Blocks.DIRT, Blocks.GRASS_BLOCK)) @@ -49,4 +49,4 @@ object BoringModule : Module( LOG.info("I'm ${if (superBoring) "super boring ($boringValue)" else "boring"}! $isEnabled") } } -} \ No newline at end of file +} diff --git a/common/src/main/kotlin/com/lambda/util/FolderRegister.kt b/common/src/main/kotlin/com/lambda/util/FolderRegister.kt index fcda05702..87958abf1 100644 --- a/common/src/main/kotlin/com/lambda/util/FolderRegister.kt +++ b/common/src/main/kotlin/com/lambda/util/FolderRegister.kt @@ -1,10 +1,9 @@ package com.lambda.util -import com.lambda.Lambda.mc import java.io.File object FolderRegister { - val minecraft: File = mc.runDirectory + val minecraft: File = File("") // Absolute path to .minecraft val lambda: File = File(minecraft, "lambda") val config: File = File(lambda, "config") -} \ No newline at end of file +} diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index a4992214a..564c79617 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -37,16 +37,13 @@ val common: Configuration by configurations.creating { } val includeLib: Configuration by configurations.creating -val includeMod: Configuration by configurations.creating fun DependencyHandlerScope.setupConfigurations() { + // Please look at this before yelling at me + // https://docs.architectury.dev/loom/using_libraries/ includeLib.dependencies.forEach { implementation(it) - include(it) - } - - includeMod.dependencies.forEach { - modImplementation(it) + forgeRuntimeLibrary(it) // Avoid mods not being found in dev environment include(it) } } @@ -56,14 +53,13 @@ dependencies { forge("net.minecraftforge:forge:$forgeVersion") // Add dependencies on the required Kotlin modules. - includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") { isTransitive = false } - includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") { isTransitive = false } + includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") includeLib("org.reflections:reflections:0.10.2") + includeLib("org.javassist:javassist:3.27.0-GA") - // Add mods to the mod jar - includeMod("thedarkcolour:kotlinforforge:$kotlinForgeVersion") // Both a library and a mod - - compileOnly(kotlin("stdlib")) // Hacky fix https://github.com/thedarkcolour/KotlinForForge/issues/93 + // Bugfixes + compileOnly(kotlin("stdlib")) // Hack https://github.com/thedarkcolour/KotlinForForge/issues/93 // Common (Do not touch) implementation(project(":common", configuration = "namedElements")) { isTransitive = false } // We cannot common here because it is treated as a different mod and forge will panic From ee2da65d8d6ac7e7be6684ffea8a3857e61d5c1b Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 14:25:24 -0400 Subject: [PATCH 19/27] Fix: Fabric --- fabric/build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 149bc4151..868f7ac29 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -38,11 +38,12 @@ fun DependencyHandlerScope.setupConfigurations() { dependencies { // Fabric API (Do not touch) modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion") - modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") - modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") + includeMod("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + includeMod("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") // Add dependencies on the required Kotlin modules. includeLib("org.reflections:reflections:0.10.2") + includeLib("org.javassist:javassist:3.27.0-GA") // Add mods to the mod jar // includeMod(...) From 5b69414236ce9b235a8f5b79aa5e98df6d2faf8b Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 14:33:29 -0400 Subject: [PATCH 20/27] Removed bundle --- fabric/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 868f7ac29..262ea1fd8 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -38,8 +38,8 @@ fun DependencyHandlerScope.setupConfigurations() { dependencies { // Fabric API (Do not touch) modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion") - includeMod("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") - includeMod("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion") // Add dependencies on the required Kotlin modules. includeLib("org.reflections:reflections:0.10.2") From 3e0950c2d1e70d0c18ffa34094b223c2bc6634c3 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 15:05:05 -0400 Subject: [PATCH 21/27] Fix: NeoForge --- neoforge/build.gradle.kts | 7 +++---- neoforge/src/main/resources/META-INF/mods.toml | 3 +++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/neoforge/build.gradle.kts b/neoforge/build.gradle.kts index b0c9beb9d..417790b88 100644 --- a/neoforge/build.gradle.kts +++ b/neoforge/build.gradle.kts @@ -34,8 +34,7 @@ fun DependencyHandlerScope.setupConfigurations() { } includeMod.dependencies.forEach { - modImplementation(it) - include(it) + implementation(it) } } @@ -44,10 +43,10 @@ dependencies { neoForge("net.neoforged:neoforge:$neoVersion") // Add dependencies on the required Kotlin modules. - includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + // includeLib(...) // Add mods to the mod jar - // includeMod(...) + includeMod("thedarkcolour:kotlinforforge-neoforge:$kotlinForgeVersion") // Common (Do not touch) common(project(":common", configuration = "namedElements")) { isTransitive = false } diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/mods.toml index 7ffe5d7e7..fe30883ac 100644 --- a/neoforge/src/main/resources/META-INF/mods.toml +++ b/neoforge/src/main/resources/META-INF/mods.toml @@ -13,6 +13,7 @@ displayTest = "IGNORE_ALL_VERSION" [[dependencies.lambda]] modId = "neoforge" +mandatory = true type = "required" versionRange = "[20.2,)" ordering = "NONE" @@ -20,6 +21,7 @@ side = "CLIENT" [[dependencies.lambda]] modId = "minecraft" +mandatory = true type = "required" versionRange = "[1.20.2,1.21)" ordering = "NONE" @@ -27,6 +29,7 @@ side = "CLIENT" [[dependencies.lambda]] modId = "kotlinforforge" +mandatory = true type = "required" versionRange = "[4,)" ordering = "AFTER" From 63debfb6a0931c90f07e8e467b4163997db600f2 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 15:05:44 -0400 Subject: [PATCH 22/27] Avoid including mod jar in fabric --- fabric/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 262ea1fd8..21418d2c4 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -31,7 +31,6 @@ fun DependencyHandlerScope.setupConfigurations() { includeMod.dependencies.forEach { modImplementation(it) - include(it) } } From b946660427b45966ae4fe738a77e48100fcbbda3 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 15:28:45 -0400 Subject: [PATCH 23/27] Removed log entrypoints --- common/src/main/kotlin/com/lambda/Lambda.kt | 1 + fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt | 2 -- forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt | 2 -- neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt | 2 -- 4 files changed, 1 insertion(+), 6 deletions(-) diff --git a/common/src/main/kotlin/com/lambda/Lambda.kt b/common/src/main/kotlin/com/lambda/Lambda.kt index 765035830..99903455c 100644 --- a/common/src/main/kotlin/com/lambda/Lambda.kt +++ b/common/src/main/kotlin/com/lambda/Lambda.kt @@ -20,6 +20,7 @@ object Lambda { val LOG: Logger = LogManager.getLogger(SYMBOL) val mc: MinecraftClient by lazy { MinecraftClient.getInstance() } + val gson: Gson = GsonBuilder() .setPrettyPrinting() .registerTypeAdapter(BlockPos::class.java, BlockPosSerializer) diff --git a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt index 671ede2d9..a80488852 100644 --- a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt +++ b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt @@ -2,11 +2,9 @@ package com.lambda.fabric import net.fabricmc.api.ClientModInitializer import com.lambda.Lambda -import com.lambda.Lambda.LOG object LambdaFabric : ClientModInitializer { override fun onInitializeClient() { Lambda.initialize() - LOG.info("Lambda Fabric initialized") } } diff --git a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt index 08668c24d..9256d3f7e 100644 --- a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt +++ b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt @@ -2,12 +2,10 @@ package com.lambda.forge import net.minecraftforge.fml.common.Mod import com.lambda.Lambda -import com.lambda.Lambda.LOG @Mod(Lambda.MOD_ID) object LambdaForge { init { Lambda.initialize() - LOG.info("Lambda Forge initialized") } } diff --git a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt index 5f109917c..92f31e26a 100644 --- a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt +++ b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt @@ -2,12 +2,10 @@ package com.lambda.neoforge import net.neoforged.fml.common.Mod import com.lambda.Lambda -import com.lambda.Lambda.LOG @Mod(Lambda.MOD_ID) object LambdaNeoForge { init { Lambda.initialize() - LOG.info("Lambda NeoForge initialized") } } From 2c7754b5d90bffd918505dac46678af8111bb58e Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 15:28:57 -0400 Subject: [PATCH 24/27] Fix: Forge --- forge/build.gradle.kts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 564c79617..886c7a93e 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -30,21 +30,20 @@ repositories { maven("https://cursemaven.com") } -val common: Configuration by configurations.creating { - configurations.compileClasspath.get().extendsFrom(this) - configurations.runtimeClasspath.get().extendsFrom(this) - configurations["developmentForge"].extendsFrom(this) -} - val includeLib: Configuration by configurations.creating +val includeMod: Configuration by configurations.creating fun DependencyHandlerScope.setupConfigurations() { + includeLib.dependencies.forEach { + implementation(it) + include(it) + } + // Please look at this before yelling at me // https://docs.architectury.dev/loom/using_libraries/ - includeLib.dependencies.forEach { + includeMod.dependencies.forEach { implementation(it) forgeRuntimeLibrary(it) // Avoid mods not being found in dev environment - include(it) } } @@ -53,11 +52,14 @@ dependencies { forge("net.minecraftforge:forge:$forgeVersion") // Add dependencies on the required Kotlin modules. - includeLib("thedarkcolour:kotlinforforge:$kotlinForgeVersion") - includeLib("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") includeLib("org.reflections:reflections:0.10.2") includeLib("org.javassist:javassist:3.27.0-GA") + // Add mods to the mod jar + includeMod("thedarkcolour:kotlinforforge:$kotlinForgeVersion") + includeMod("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") + compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) + // Bugfixes compileOnly(kotlin("stdlib")) // Hack https://github.com/thedarkcolour/KotlinForForge/issues/93 From b1528050c8b6edd2ffdf93bf581a58cecd346939 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 18:05:03 -0400 Subject: [PATCH 25/27] Fix: Missing mods forge env --- forge/build.gradle.kts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 886c7a93e..0c0086e76 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -21,6 +21,12 @@ loom { mods { register("forge") { sourceSet("main", project(":forge")) + + sourceSets.forEach { + val dir = layout.buildDirectory.dir("sourcesSets/${it.name}") + it.output.setResourcesDir(dir) + it.java.destinationDirectory.set(dir) + } } } } From 4ea2c83a163554261781f6f06f15e05eab7a8313 Mon Sep 17 00:00:00 2001 From: Constructor Date: Mon, 11 Mar 2024 01:23:30 +0100 Subject: [PATCH 26/27] Small changes --- common/src/main/kotlin/com/lambda/Lambda.kt | 4 ++-- .../kotlin/com/lambda/event/{EventMutable.kt => Muteable.kt} | 0 common/src/main/kotlin/com/lambda/util/FolderRegister.kt | 3 ++- fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt | 4 ++++ forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt | 4 ++++ .../src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt | 4 ++++ 6 files changed, 16 insertions(+), 3 deletions(-) rename common/src/main/kotlin/com/lambda/event/{EventMutable.kt => Muteable.kt} (100%) diff --git a/common/src/main/kotlin/com/lambda/Lambda.kt b/common/src/main/kotlin/com/lambda/Lambda.kt index 99903455c..0be931bf1 100644 --- a/common/src/main/kotlin/com/lambda/Lambda.kt +++ b/common/src/main/kotlin/com/lambda/Lambda.kt @@ -13,10 +13,10 @@ import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.Logger object Lambda { - private const val MOD_NAME = "Lambda" + const val MOD_NAME = "Lambda" const val MOD_ID = "lambda" private const val SYMBOL = "λ" - private val VERSION: String = LoaderInfo.getVersion() + val VERSION: String = LoaderInfo.getVersion() val LOG: Logger = LogManager.getLogger(SYMBOL) val mc: MinecraftClient by lazy { MinecraftClient.getInstance() } diff --git a/common/src/main/kotlin/com/lambda/event/EventMutable.kt b/common/src/main/kotlin/com/lambda/event/Muteable.kt similarity index 100% rename from common/src/main/kotlin/com/lambda/event/EventMutable.kt rename to common/src/main/kotlin/com/lambda/event/Muteable.kt diff --git a/common/src/main/kotlin/com/lambda/util/FolderRegister.kt b/common/src/main/kotlin/com/lambda/util/FolderRegister.kt index 87958abf1..553751c58 100644 --- a/common/src/main/kotlin/com/lambda/util/FolderRegister.kt +++ b/common/src/main/kotlin/com/lambda/util/FolderRegister.kt @@ -1,9 +1,10 @@ package com.lambda.util +import com.lambda.Lambda.mc import java.io.File object FolderRegister { - val minecraft: File = File("") // Absolute path to .minecraft + val minecraft: File = mc.runDirectory val lambda: File = File(minecraft, "lambda") val config: File = File(lambda, "config") } diff --git a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt index a80488852..1b6840aa8 100644 --- a/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt +++ b/fabric/src/main/kotlin/com/lambda/fabric/LambdaFabric.kt @@ -2,9 +2,13 @@ package com.lambda.fabric import net.fabricmc.api.ClientModInitializer import com.lambda.Lambda +import com.lambda.Lambda.LOG +import com.lambda.Lambda.MOD_NAME +import com.lambda.Lambda.VERSION object LambdaFabric : ClientModInitializer { override fun onInitializeClient() { Lambda.initialize() + LOG.info("$MOD_NAME Fabric $VERSION initialized.") } } diff --git a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt index 9256d3f7e..97f6daaa9 100644 --- a/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt +++ b/forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt @@ -2,10 +2,14 @@ package com.lambda.forge import net.minecraftforge.fml.common.Mod import com.lambda.Lambda +import com.lambda.Lambda.LOG +import com.lambda.Lambda.MOD_NAME +import com.lambda.Lambda.VERSION @Mod(Lambda.MOD_ID) object LambdaForge { init { Lambda.initialize() + LOG.info("$MOD_NAME Forge $VERSION initialized.") } } diff --git a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt index 92f31e26a..491132500 100644 --- a/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt +++ b/neoforge/src/main/kotlin/com/lambda/neoforge/LambdaNeoForge.kt @@ -2,10 +2,14 @@ package com.lambda.neoforge import net.neoforged.fml.common.Mod import com.lambda.Lambda +import com.lambda.Lambda.LOG +import com.lambda.Lambda.MOD_NAME +import com.lambda.Lambda.VERSION @Mod(Lambda.MOD_ID) object LambdaNeoForge { init { Lambda.initialize() + LOG.info("$MOD_NAME Fabric $VERSION initialized.") } } From 26422a6d153c710f8d808afbdb3639bb96e77af3 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 10 Mar 2024 20:48:24 -0400 Subject: [PATCH 27/27] Fix: Forge dev and prod --- common/build.gradle.kts | 3 ++- forge/build.gradle.kts | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/common/build.gradle.kts b/common/build.gradle.kts index cc6084d73..ba93c4e04 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -6,11 +6,12 @@ val kotlinXCoroutineVersion = property("kotlinx_coroutines_version").toString() architectury { common("fabric", "forge", "neoforge") } loom { + silentMojangMappingsLicense() accessWidenerPath.set(File("src/main/resources/lambda.accesswidener")) } repositories { - maven("https://maven.fabricmc.net/") { name = "Fabric" } + maven("https://maven.fabricmc.net/") maven("https://jitpack.io") mavenCentral() diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 0c0086e76..259cec3c7 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -1,5 +1,6 @@ val forgeVersion = property("forge_version").toString() val kotlinForgeVersion = property("kotlin_forge_version").toString() +val architecturyVersion = property("architectury_version").toString() val mixinExtrasVersion = property("mixinextras_version").toString() architectury { @@ -36,6 +37,12 @@ repositories { maven("https://cursemaven.com") } +val common: Configuration by configurations.creating { + configurations.compileClasspath.get().extendsFrom(this) + configurations.runtimeClasspath.get().extendsFrom(this) + configurations["developmentForge"].extendsFrom(this) +} + val includeLib: Configuration by configurations.creating val includeMod: Configuration by configurations.creating @@ -49,7 +56,7 @@ fun DependencyHandlerScope.setupConfigurations() { // https://docs.architectury.dev/loom/using_libraries/ includeMod.dependencies.forEach { implementation(it) - forgeRuntimeLibrary(it) // Avoid mods not being found in dev environment + forgeRuntimeLibrary(it) } } @@ -57,20 +64,24 @@ dependencies { // Forge API forge("net.minecraftforge:forge:$forgeVersion") + // Architectury API + modApi("dev.architectury:architectury-forge:$architecturyVersion") + // Add dependencies on the required Kotlin modules. includeLib("org.reflections:reflections:0.10.2") includeLib("org.javassist:javassist:3.27.0-GA") + implementation("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") + compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) + // Add mods to the mod jar includeMod("thedarkcolour:kotlinforforge:$kotlinForgeVersion") - includeMod("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion") - compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!) // Bugfixes compileOnly(kotlin("stdlib")) // Hack https://github.com/thedarkcolour/KotlinForForge/issues/93 // Common (Do not touch) - implementation(project(":common", configuration = "namedElements")) { isTransitive = false } // We cannot common here because it is treated as a different mod and forge will panic + common(project(":common", configuration = "namedElements")) { isTransitive = false } // We cannot common here because it is treated as a different mod and forge will panic shadowCommon(project(path = ":common", configuration = "transformProductionForge")) { isTransitive = false } // Finish the configuration