Skip to content

Commit 9f728a1

Browse files
committed
Added the kotlin modloader back
1 parent 2440e72 commit 9f728a1

File tree

12 files changed

+34
-81
lines changed

12 files changed

+34
-81
lines changed

common/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ dependencies {
2020
// Do NOT use other classes from fabric loader
2121
modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion")
2222

23-
// Remove the following line if you don't want to depend on the API
24-
modApi("dev.architectury:architectury:$architecturyVersion")
25-
2623
// Add dependencies on the required Kotlin modules.
2724
implementation("org.reflections:reflections:0.10.2")
2825

common/src/main/kotlin/com/lambda/Lambda.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@ import com.google.gson.GsonBuilder
55
import com.lambda.config.serializer.BlockPosSerializer
66
import com.lambda.config.serializer.BlockSerializer
77
import com.lambda.config.serializer.ColorSerializer
8-
import dev.architectury.platform.Platform
98
import net.minecraft.block.Block
109
import net.minecraft.client.MinecraftClient
1110
import net.minecraft.util.math.BlockPos
12-
import org.apache.logging.log4j.Level
1311
import org.apache.logging.log4j.LogManager
14-
import org.apache.logging.log4j.core.Logger
12+
import org.apache.logging.log4j.Logger
1513
import java.awt.Color
1614

1715

@@ -20,8 +18,7 @@ object Lambda {
2018
const val MOD_ID = "lambda"
2119
const val SYMBOL = "λ"
2220
val VERSION: String = LoaderInfo.getVersion()
23-
val LOG = (LogManager.getLogger(SYMBOL) as Logger)
24-
.apply { level = if (Platform.isDevelopmentEnvironment()) Level.DEBUG else Level.INFO }
21+
val LOG: Logger = LogManager.getLogger(SYMBOL)
2522
val mc: MinecraftClient by lazy { MinecraftClient.getInstance() }
2623

2724
val gson: Gson = GsonBuilder()

common/src/main/kotlin/com/lambda/util/FolderRegister.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.lambda.util
22

3+
import com.lambda.Lambda.mc
34
import com.lambda.util.FolderRegister.config
45
import com.lambda.util.FolderRegister.lambda
56
import com.lambda.util.FolderRegister.minecraft
6-
import dev.architectury.platform.Platform
77
import java.io.File
88

99
/**
@@ -14,7 +14,7 @@ import java.io.File
1414
* @property config The directory for storing configuration files, located within the Lambda directory.
1515
*/
1616
object FolderRegister {
17-
val minecraft: File = Platform.getGameFolder().toFile()
17+
val minecraft: File = mc.runDirectory
1818
val lambda: File = File(minecraft, "lambda")
1919
val config: File = File(lambda, "config")
2020
}

fabric/build.gradle.kts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
val fabricLoaderVersion = property("fabric_loader_version").toString()
22
val fabricApiVersion = property("fabric_api_version").toString()
3-
val kotlinVersion = property("kotlin_version").toString()
4-
val kotlinxCoroutinesVersion = property("kotlinx_coroutines_version").toString()
53
val architecturyVersion = property("architectury_version").toString()
4+
val kotlinFabricVersion = property("kotlin_fabric_version").toString()
65

76
architectury {
87
platformSetupLoomIde()
@@ -24,7 +23,6 @@ val common: Configuration by configurations.creating {
2423

2524
val includeLib: Configuration by configurations.creating
2625
val includeMod: Configuration by configurations.creating
27-
val shadowInclude: Configuration by configurations.creating
2826

2927
fun DependencyHandlerScope.setupConfigurations() {
3028
includeLib.dependencies.forEach {
@@ -34,30 +32,20 @@ fun DependencyHandlerScope.setupConfigurations() {
3432

3533
includeMod.dependencies.forEach {
3634
modImplementation(it)
37-
}
38-
39-
shadowInclude.dependencies.forEach {
40-
implementation(it)
41-
shadowCommon(it)
35+
include(it)
4236
}
4337
}
4438

4539
dependencies {
4640
// Fabric API (Do not touch)
4741
modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion")
4842

49-
// Remove the following line if you don't want to depend on the API
50-
modApi("dev.architectury:architectury-fabric:$architecturyVersion")
51-
5243
// Add dependencies on the required Kotlin modules.
5344
includeLib("org.reflections:reflections:0.10.2")
5445
includeLib("org.javassist:javassist:3.28.0-GA")
5546

5647
// Add mods to the mod jar
57-
// includeMod(...)
58-
59-
// Add Kotlin
60-
shadowInclude("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
48+
includeMod("net.fabricmc:fabric-language-kotlin:$kotlinFabricVersion")
6149

6250
// Common (Do not touch)
6351
common(project(":common", configuration = "namedElements")) { isTransitive = false }

fabric/src/main/resources/fabric.mod.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"entrypoints": {
1818
"client": [
1919
{
20+
"adapter": "kotlin",
2021
"value": "com.lambda.fabric.LambdaFabric"
2122
}
2223
]
@@ -27,8 +28,8 @@
2728
"depends": {
2829
"fabricloader": ">=0.15.1",
2930
"fabric-api": ">=0.91.3+1.20.4",
30-
"architectury": ">=11.0.8",
3131
"minecraft": "1.20.4",
32+
"fabric-language-kotlin": ">=${kotlin_fabric_version}",
3233
"java": ">=17"
3334
}
3435
}

forge/build.gradle.kts

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
val forgeVersion = property("forge_version").toString()
2-
val kotlinxCoroutinesVersion = property("kotlinx_coroutines_version").toString()
32
val architecturyVersion = property("architectury_version").toString()
43
val mixinExtrasVersion = property("mixinextras_version").toString()
4+
val kotlinForgeVersion = property("kotlin_forge_version").toString()
55

66
architectury {
77
platformSetupLoomIde()
@@ -34,6 +34,7 @@ loom {
3434

3535
repositories {
3636
maven("https://cursemaven.com")
37+
maven("https://thedarkcolour.github.io/KotlinForForge/")
3738
}
3839

3940
val common: Configuration by configurations.creating {
@@ -48,46 +49,34 @@ val shadowInclude: Configuration by configurations.creating
4849

4950
fun DependencyHandlerScope.setupConfigurations() {
5051
includeLib.dependencies.forEach {
51-
implementation(it)
52+
forgeRuntimeLibrary(it)
5253
include(it)
5354
}
5455

55-
// Please look at this before yelling at me
56-
// https://docs.architectury.dev/loom/using_libraries/
5756
includeMod.dependencies.forEach {
58-
implementation(it)
5957
forgeRuntimeLibrary(it)
6058
include(it)
6159
}
62-
63-
shadowInclude.dependencies.forEach {
64-
implementation(it)
65-
forgeRuntimeLibrary(it)
66-
shadowCommon(it)
67-
}
6860
}
6961

7062
dependencies {
7163
// Forge API
7264
forge("net.minecraftforge:forge:$forgeVersion")
7365

74-
// Remove the following line if you don't want to depend on the API
75-
modApi("dev.architectury:architectury-forge:$architecturyVersion")
76-
7766
// Add dependencies on the required Kotlin modules.
7867
includeLib("org.reflections:reflections:0.10.2")
7968
includeLib("org.javassist:javassist:3.28.0-GA")
8069

8170
// Add mods to the mod jar
82-
// includeMod(...)
83-
84-
// Add Kotlin
85-
shadowInclude("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
71+
includeMod("thedarkcolour:kotlinforforge:$kotlinForgeVersion")
8672

8773
// MixinExtras
8874
implementation("io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion")
8975
compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:$mixinExtrasVersion")!!)
9076

77+
// Fix KFF
78+
compileOnly(kotlin("stdlib"))
79+
9180
// Common (Do not touch)
9281
common(project(":common", configuration = "namedElements")) { isTransitive = false }
9382
shadowCommon(project(path = ":common", configuration = "transformProductionForge")) { isTransitive = false }

forge/src/main/kotlin/com/lambda/forge/LambdaForge.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import net.minecraftforge.fml.common.Mod
88

99

1010
@Mod(Lambda.MOD_ID)
11-
class LambdaForge {
11+
object LambdaForge {
1212
init {
1313
Lambda.initialize()
1414
LOG.info("$MOD_NAME Forge $VERSION initialized.")

forge/src/main/resources/META-INF/mods.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
modLoader = "javafml"
2-
loaderVersion = "[48,)"
1+
modLoader = "kotlinforforge"
2+
loaderVersion = "[4.10,)"
33
license = "GNU General Public License v3.0"
44
issueTrackerURL = "https://github.com/lambda-client/lambda/issues"
55

@@ -27,8 +27,8 @@ issueTrackerURL = "https://github.com/lambda-client/lambda/issues"
2727
side = "CLIENT"
2828

2929
[[dependencies.lambda]]
30-
modId = "architectury"
30+
modId = "kotlinforforge"
3131
mandatory = true
32-
versionRange = "[11.0.7,)"
33-
ordering = "AFTER"
32+
versionRange = "[4.10,)"
33+
ordering = "NONE"
3434
side = "CLIENT"

gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ architectury_version=11.1.13
1919
fabric_loader_version=0.15.7
2020
yarn_mappings=1.20.4+build.3
2121
fabric_api_version=0.96.4+1.20.4
22+
kotlin_fabric_version=1.10.19+kotlin.1.9.23
2223

2324
# Forge https://files.minecraftforge.net/
2425
forge_version=1.20.4-49.0.31
26+
kotlin_forge_version=4.10.0
2527

2628
# NeoForge https://neoforged.net
2729
neo_version=20.4.196

neoforge/build.gradle.kts

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
val neoVersion = property("neo_version").toString()
2-
val kotlinxCoroutinesVersion = property("kotlinx_coroutines_version").toString()
32
val architecturyVersion = property("architectury_version").toString()
4-
val mixinExtrasVersion = property("mixinextras_version").toString()
3+
val kotlinForgeVersion = property("kotlin_forge_version").toString()
54

65
architectury {
76
platformSetupLoomIde()
@@ -16,6 +15,7 @@ loom {
1615

1716
repositories {
1817
maven("https://maven.neoforged.net/releases/")
18+
maven("https://thedarkcolour.github.io/KotlinForForge/")
1919
}
2020

2121
val common: Configuration by configurations.creating {
@@ -26,7 +26,6 @@ val common: Configuration by configurations.creating {
2626

2727
val includeLib: Configuration by configurations.creating
2828
val includeMod: Configuration by configurations.creating
29-
val shadowInclude: Configuration by configurations.creating
3029

3130
fun DependencyHandlerScope.setupConfigurations() {
3231
includeLib.dependencies.forEach {
@@ -36,36 +35,21 @@ fun DependencyHandlerScope.setupConfigurations() {
3635
}
3736

3837
includeMod.dependencies.forEach {
39-
modImplementation(it)
40-
forgeRuntimeLibrary(it)
41-
include(it)
42-
}
43-
44-
shadowInclude.dependencies.forEach {
4538
implementation(it)
46-
forgeRuntimeLibrary(it)
47-
shadowCommon(it)
39+
include(it)
4840
}
4941
}
5042

5143
dependencies {
5244
// NeoForge API
5345
neoForge("net.neoforged:neoforge:$neoVersion")
5446

55-
// Remove the following line if you don't want to depend on the API
56-
modApi("dev.architectury:architectury-neoforge:$architecturyVersion")
57-
5847
// Add dependencies on the required Kotlin modules.
5948
includeLib("org.reflections:reflections:0.10.2")
6049
includeLib("org.javassist:javassist:3.28.0-GA")
6150

6251
// Add mods to the mod jar
63-
// includeMod(...)
64-
65-
// Add Kotlin
66-
shadowInclude("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion") {
67-
exclude("org.jetbrains", "annotations")
68-
}
52+
includeMod("thedarkcolour:kotlinforforge-neoforge:$kotlinForgeVersion")
6953

7054
// Common (Do not touch)
7155
common(project(":common", configuration = "namedElements")) { isTransitive = false }
@@ -89,11 +73,6 @@ tasks {
8973
}
9074
}
9175

92-
shadowJar {
93-
relocate("kotlin", "com.lambda.kotlin")
94-
relocate("kotlinx", "com.lambda.kotlinx")
95-
}
96-
9776
remapJar {
9877
atAccessWideners.add("lambda.accesswidener")
9978
}

0 commit comments

Comments
 (0)