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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,14 @@ subprojects {
apply(plugin = "org.jetbrains.dokka")

dependencies {
"minecraft"("com.mojang:minecraft:$minecraftVersion")
"mappings"("net.fabricmc:yarn:$yarnMappings:v2")
if (path == ":quilt") {
"minecraft"("com.mojang:minecraft:1.20.2")
"mappings"("net.fabricmc:yarn:1.20.2+build.3:v2")
}
else {
"minecraft"("com.mojang:minecraft:$minecraftVersion")
"mappings"("net.fabricmc:yarn:$yarnMappings:v2")
}
}

if (path == ":common") return@subprojects
Expand Down Expand Up @@ -62,6 +68,7 @@ allprojects {
apply(plugin = "architectury-plugin")
apply(plugin = "maven-publish")
apply(plugin = "org.jetbrains.kotlin.jvm")

base.archivesName.set(modId)
group = mavenGroup
version = modVersion
Expand All @@ -78,7 +85,9 @@ allprojects {
}

java {
// withSourcesJar() // Uncomment this line when the plugin system is ready
// Uncomment these lines when the plugin system is ready
// withSourcesJar()
// withJavadocJar()

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
Expand Down
7 changes: 5 additions & 2 deletions common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
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()
val architecturyVersion = property("architectury_version").toString()

architectury { common("fabric", "forge", "neoforge") }
architectury { common("fabric", "forge", "neoforge", "quilt") }

loom {
silentMojangMappingsLicense()
Expand All @@ -23,6 +23,9 @@ dependencies {
// Do NOT use other classes from fabric loader
modImplementation("net.fabricmc:fabric-loader:$fabricLoaderVersion")

// Remove the following line if you don't want to depend on the API
modApi("dev.architectury:architectury:$architecturyVersion")

// Add dependencies on the required Kotlin modules.
modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion")
implementation("org.reflections:reflections:0.10.2")
Expand Down
4 changes: 2 additions & 2 deletions common/src/main/kotlin/com/lambda/util/FolderRegister.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.lambda.util

import com.lambda.Lambda.mc
import dev.architectury.platform.Platform
import java.io.File

object FolderRegister {
val minecraft: File = mc.runDirectory
val minecraft: File = Platform.getGameFolder().toFile()
val lambda: File = File(minecraft, "lambda")
val config: File = File(lambda, "config")
}
17 changes: 14 additions & 3 deletions fabric/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
val fabricLoaderVersion = property("fabric_loader_version").toString()
val fabricApiVersion = property("fabric_api_version").toString()
val fabricKotlinVersion = property("fabric_kotlin_version").toString()
val architecturyVersion = property("architectury_version").toString()

architectury {
platformSetupLoomIde()
Expand Down Expand Up @@ -37,7 +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")
modApi("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion")

// Remove the following line if you don't want to depend on the API
modApi("dev.architectury:architectury-fabric:$architecturyVersion")

// Kotlin for Fabric
modImplementation("net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion")

// Add dependencies on the required Kotlin modules.
Expand All @@ -49,18 +55,23 @@ dependencies {

// Common (Do not touch)
common(project(":common", configuration = "namedElements")) { isTransitive = false }
shadowCommon(project(path = ":common", configuration = "transformProductionFabric")) { isTransitive = false }
shadowCommon(project(":common", configuration = "transformProductionFabric")) { isTransitive = false }

// Finish the configuration
setupConfigurations()
}

tasks {
processResources {
inputs.property("group", project.group)
inputs.property("version", project.version)

filesMatching("fabric.mod.json") {
expand(getProperties())
expand(mutableMapOf("version" to project.version))
expand(mutableMapOf(
"group" to project.group,
"version" to project.version
))
}
}

Expand Down
1 change: 1 addition & 0 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"depends": {
"fabricloader": ">=0.14.24",
"fabric-api": ">=0.83.0+1.20",
"architectury": ">=9.0.6",
"minecraft": ">=1.20.0",
"java": ">=17",
"fabric-language-kotlin": ">=${fabric_kotlin_version}"
Expand Down
2 changes: 1 addition & 1 deletion forge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ dependencies {
// Forge API
forge("net.minecraftforge:forge:$forgeVersion")

// Architectury API
// Remove the following line if you don't want to depend on the API
modApi("dev.architectury:architectury-forge:$architecturyVersion")

// Add dependencies on the required Kotlin modules.
Expand Down
7 changes: 7 additions & 0 deletions forge/src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,10 @@ mandatory = true
versionRange = "[4,)"
ordering = "AFTER"
side = "CLIENT"

[[dependencies.lambda]]
modId = "architectury"
mandatory = true
versionRange = "[7.1.86,)"
ordering = "AFTER"
side = "CLIENT"
5 changes: 5 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ kotlin_forge_version=4.10.0
# NeoForge https://neoforged.net
neo_version=20.4.196

# Quilt https://quiltmc.org/
quilt_version=0.24.0
quilted_fabric_version=8.0.0-alpha.4+0.91.6-1.20.2
kotlin_quilt_version=3.0.0+kt.1.9.22+flk.1.10.17

# Kotlin https://kotlinlang.org/
kotlin.code.style=official

Expand Down
4 changes: 4 additions & 0 deletions neoforge/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
val neoVersion = property("neo_version").toString()
val kotlinForgeVersion = property("kotlin_forge_version").toString()
val architecturyVersion = property("architectury_version").toString()
val mixinExtrasVersion = property("mixinextras_version").toString()

architectury {
Expand Down Expand Up @@ -42,6 +43,9 @@ dependencies {
// NeoForge API
neoForge("net.neoforged:neoforge:$neoVersion")

// Remove the following line if you don't want to depend on the API
modApi("dev.architectury:architectury-neoforge:$architecturyVersion")

// Add dependencies on the required Kotlin modules.
// includeLib(...)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ import com.lambda.Lambda.VERSION
object LambdaNeoForge {
init {
Lambda.initialize()
LOG.info("$MOD_NAME Fabric $VERSION initialized.")
LOG.info("$MOD_NAME NeoForge $VERSION initialized.")
}
}
8 changes: 8 additions & 0 deletions neoforge/src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,11 @@ type = "required"
versionRange = "[4,)"
ordering = "AFTER"
side = "CLIENT"

[[dependencies.lambda]]
modId = "architectury"
mandatory = true
type = "required"
versionRange = "[10.1.19,)"
ordering = "AFTER"
side = "CLIENT"
99 changes: 99 additions & 0 deletions quilt/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
val quiltVersion = property("quilt_version").toString()
val quiltedFabricVersion = property("quilted_fabric_version").toString()
val kotlinQuiltVersion = property("kotlin_quilt_version").toString()
val architecturyVersion = /*property("architectury_version").toString()*/ "10.1.19"
val kotlinxCoroutineVersion = property("kotlinx_coroutines_version").toString()

architectury {
platformSetupLoomIde()
loader("quilt")
}

base.archivesName.set("${base.archivesName.get()}-quilt")

loom {
accessWidenerPath.set(project(":common").loom.accessWidenerPath)
enableTransitiveAccessWideners.set(true)

mods {
register("quilt") {
sourceSet("main", project(":quilt"))
}
}
}

repositories {
maven("https://maven.quiltmc.org/repository/release/")
}

val common: Configuration by configurations.creating {
configurations.compileClasspath.get().extendsFrom(this)
configurations.runtimeClasspath.get().extendsFrom(this)
configurations["developmentQuilt"].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 {
// Quilt Loader
modImplementation("org.quiltmc:quilt-loader:$quiltVersion")

// Quilted Fabric API
modApi("org.quiltmc.quilted-fabric-api:quilted-fabric-api:$quiltedFabricVersion")

// Remove the following line if you don't want to depend on the API
modApi("dev.architectury:architectury-fabric:$architecturyVersion") {
exclude("net.fabricmc")
exclude("net.fabricmc.fabric-api")
}

// Kotlin for Quilt
modImplementation("org.quiltmc.quilt-kotlin-libraries:quilt-kotlin-libraries:$kotlinQuiltVersion")

// 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(...)


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

// Finish the configuration
setupConfigurations()
}

tasks {
processResources {
inputs.property("group", project.group)
inputs.property("version", project.version)

filesMatching("quilt.mod.json") {
expand(getProperties())
expand(mutableMapOf(
"group" to project.group,
"version" to project.version
))
}
}

remapJar {
injectAccessWidener.set(true)
}
}
1 change: 1 addition & 0 deletions quilt/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
loom.platform=quilt
11 changes: 11 additions & 0 deletions quilt/src/main/kotlin/com/lambda/fabric/LoaderInfoImpl.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.lambda.fabric

import net.fabricmc.loader.api.FabricLoader

object LoaderInfoImpl {
@JvmStatic
fun getVersion(): String =
FabricLoader.getInstance()
.getModContainer("lambda").orElseThrow()
.metadata.version.friendlyString
}
17 changes: 17 additions & 0 deletions quilt/src/main/kotlin/com/lambda/quilt/LambdaQuilt.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.lambda.quilt

import com.lambda.Lambda
import com.lambda.Lambda.LOG
import com.lambda.Lambda.MOD_NAME
import com.lambda.Lambda.VERSION
import org.quiltmc.loader.api.ModContainer
import org.quiltmc.qsl.base.api.entrypoint.ModInitializer

// Cannot use `object` because Quilt has a class fetish (object is a class in Kotlin with a private constructor)
class LambdaQuilt : ModInitializer {
// If the mod is marked as non nullable, Quilt will panic because it can't find the instrisic library
override fun onInitialize(mod: ModContainer?) {
Lambda.initialize()
LOG.info("$MOD_NAME Quilt $VERSION initialized.")
}
}
12 changes: 12 additions & 0 deletions quilt/src/main/kotlin/com/lambda/quilt/LoaderInfoImpl.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.lambda.quilt

import org.quiltmc.loader.api.QuiltLoader


object LoaderInfoImpl {
@JvmStatic
fun getVersion(): String =
QuiltLoader
.getModContainer("lambda").orElseThrow()
.metadata().version().raw()
}
53 changes: 53 additions & 0 deletions quilt/src/main/resources/quilt.mod.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"schema_version": 1,
"mixin": [
"lambda.mixins.common.json"
],
"quilt_loader": {
"group": "${group}",
"id": "${mod_id}",
"version": "${mod_version}",
"metadata": {
"name": "Lambda",
"description": "${mod_description}",
"contributors": {
"Constructor": "Owner"
},
"contact": {
"sources": "https://github.com/lambda-client/lambda"
},
"icon": "assets/lambda/lambda.png"
},
"intermediate_mappings": "net.fabricmc:intermediary",
"entrypoints": {
"init": [
"com.lambda.quilt.LambdaQuilt"
]
},
"depends": [
{
"id": "quilt_loader",
"version": "*"
},
{
"id": "quilt_base",
"version": "*"
},
{
"id": "qkl",
"version": ">=3.0.0"
},
{
"id": "minecraft",
"version": ">=1.20.1"
},
{
"id": "architectury",
"version": ">=9.1.12"
}
]
},
"minecraft": {
"environment": "*"
}
}
Loading