Fabric language module for Kotlin. Adds support for Kotlin exclusive entrypoints and bundles the Kotlin Stdlib as well as common kotlinx libraries.
Add it as a dependency to your Gradle project:
dependencies {
modImplementation("net.fabricmc:fabric-language-kotlin:1.13.7+kotlin.2.2.21")
}Use the kotlin adapter for your mod by setting the adapter property in the fabric.mod.json file.
Remember to the add a dependency entry to your fabric.mod.json file:
{
"schemaVersion": 1,
"entrypoints": {
"main": [
{
"adapter": "kotlin",
"value": "package.ClassName"
}
]
},
"depends": {
"fabric-language-kotlin": ">=1.13.7+kotlin.2.2.21"
}
}For more info reference the fabric.mod.json documentation.
Do not forget to set the schemaVersion to 1 or it will fall back to schema 0 and will not attempt to load entrypoints.
| Kind | Class reference | Function reference | Field reference |
|---|---|---|---|
class |
{
"adapter": "kotlin",
"value": "mymod.MyMod"
}package mymod
class MyMod : ModInitializer {
override fun onInitialize() {
TODO()
}
} |
||
object |
{
"adapter": "kotlin",
"value": "mymod.MyMod"
}package mymod
object MyMod : ModInitializer {
override fun onInitialize() {
TODO()
}
} |
{
"adapter": "kotlin",
"value": "mymod.MyMod::init"
}package mymod
object MyMod {
fun init() {
TODO()
}
} |
{
"adapter": "kotlin",
"value": "mymod.MyMod::initializer"
}package mymod
object MyMod {
val initializer = ModInitializer {
TODO()
}
} |
companion object |
{
"adapter": "kotlin",
"value": "mymod.MyMod$Companion"
}package mymod
class MyMod {
companion object : ModInitializer {
override fun onInitialize() {
TODO()
}
}
} |
{
"adapter": "kotlin",
"value": "mymod.MyMod$Companion::init"
}package mymod
class MyMod {
companion object {
fun init() {
TODO()
}
}
} |
{
"adapter": "kotlin",
"value": "mymod.MyMod$Companion::initializer"
}package mymod
class MyMod {
companion object {
val initializer = ModInitializer {
TODO()
}
}
} |
top level |
{
"adapter": "kotlin",
"value": "mymod.MyModKt::init"
}File: package mymod
fun init() {
TODO()
} |
Companion objects can be used by appending $Companion to the class.
Take care of processResources there, it might try to expand it, in that case escape it.
org.jetbrains.kotlin namespace:
org.jetbrains.kotlinx namespace:
kotlinx-coroutines-core1.10.2 Guide, API docs, GitHubkotlinx-coroutines-jdk81.10.2 API docskotlinx-serialization-core1.9.0 Guide, API docs, GitHubkotlinx-serialization-json1.9.0 API docskotlinx-serialization-cbor1.9.0 API docsatomicfu0.29.0 GitHubkotlinx-datetime0.7.1 GitHubkotlinx-io-core0.8.0 API docs, GitHubkotlinx-io-bytestring0.8.0 API docs
https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/
- Update the readme in
templates/README.template.md. - Run
./gradlew processMDTemplates.