敬告: 此教程已默认您十分熟悉 Java 的相关知识(以及一部分与 JVM 和 Gradle 相关的知识)。这不是 Kotlin 语言的教程。如需寻求与 Kotlin 语言相关的帮助,请访问 Kotlin 文档.
Kotlin 是一种非常强大的语言,它与 Java 高度集成,可以在 JVM 上执行(Kotlin 可被编译为 Java 字节码,相应地,您可以在一个项目中同时编写 Java 和 Kotlin 代码并进行互操作)。这意味着,您可以使用 Kotlin 编写 Fabric 模组!
Int
与可空的Int?
)var
)和不可变(val
)数据之间的良好分离,在编程上有巨大帮助“字符串长度为 ${s.length}”
)有关 Kotlin 与 Java 的更全面比较,请访问官方网站。
以下步骤假设您使用的是最新版本的IntellIJ IDEA。
* 决不能!决不能!决不能将 Kotlin 文件用于编写 Mixins!
* …但是,您可以将代码重定向到 Java Mixin 中 Object
或 Companion Object
中的方法,以调用标有 @JvmStatic
注解的函数。
按流程完成配置步骤 — 请参阅 Fabric 模组教程。如果您已经配置好 Mod 工程,请转到下一步。
此步骤本质上是使用 “在项目中配置 Kotlin” 这一个操作,操作步骤是 (工具 → Kotlin → 在项目中配置 Kotlin) , 或者呼出快捷搜索 (Shift, Shift
并搜索 “配置 Kotlin…”) 或者使用快捷键 (Ctrl
+Alt
+Shift
+K
/ Command
+Option
+Shift
+K
).
这是配置它的最简单方法,尤其是与不支持 Kotlin 模板的 Minecraft Development plugin 一起使用时,此方法最为推崇。这会为 gradle 应用适当的 Kotlin 插件并为 Kotlin 语言添加依赖项。
最后,同步 gradle 项目 (Gradle 工具栏上的两个箭头图标,或在打开 gradle 文件时使用 Ctrl
+Shift
+O
快捷键)。
现在,如果一切操作无误,您就可以使用 Kotlin 进行编写了。
上一步添加了对 Kotlin stdlib 的依赖。您可以使用 官方 fabric-language-kotlin 依赖项 为您的 Mod 添加更广泛的 Kotlin 支持。有了这个依赖项,Kotlin 的一些核心和一些额外包将自动添加到项目中,您将不必浪费时间手动打包整个 Kotlin 类。
要实现此目的,将下列代码
dependencies { //... implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") }
替换为
dependencies { //... modImplementation("net.fabricmc:fabric-language-kotlin:1.10.8+kotlin.1.9.0") }
(请注意,版本适配必须正确。您可以在 官方 GitHub 仓库 获知版本信息。)
最后如 README.md 所指,别忘了修改 fabric.mod.json
:
{ "schemaVersion": 1, "entrypoints": { "main": [ { "adapter": "kotlin", "value": "package.ClassName" } ] }, "depends": { "fabric-language-kotlin": ">=1.10.8+kotlin.1.9.0" } }
您还可以修改 Mod 的入口点(Entrypoint),以允许最外层的函数、字段、方法或函数引用正常工作。请查看入口点的 README.md 获知更多信息。
编译 Kotlin 时可能会出现一些错误,因此最好根据您的 MineCraft 版本升级相对应的 jvmToolcahin
的版本(Kotlin 默认编译为 Java 8):
jvmToolchain(11)
一般情况下,游戏版本小于 1.17 时使用版本 11
, 1.17 使用版本 16
, 大于等于 1.18 的使用版本 17
。