zh_cn:tutorial:kotlin

使用 Kotlin 编写 Fabric 模组

敬告: 此教程已默认您十分熟悉 Java 的相关知识(以及一部分与 JVM 和 Gradle 相关的知识)。这不是 Kotlin 语言的教程。如需寻求与 Kotlin 语言相关的帮助,请访问 Kotlin 文档.

Kotlin 是一种非常强大的语言,它与 Java 高度集成,可以在 JVM 上执行(Kotlin 可被编译为 Java 字节码,相应地,您可以在一个项目中同时编写 Java 和 Kotlin 代码并进行互操作)。这意味着,您可以使用 Kotlin 编写 Fabric 模组!

Kotlin 的优势

  • 更少的样板代码和重复劳动。
  • 易于使用 Lambda。
  • 大量有助于编程的语法糖。
  • 自动类型推断(编译器可以根据变量的使用情况确定变量的类型)
  • 使用可空和不可空类型实现开箱即用的空引用安全(例如不可空的Int与可空的Int?
  • 扩展函数,即“添加”到现有类型的函数(这是一种很有用的语法糖)
  • 运算符重载
  • 可变(var)和不可变(val)数据之间的良好分离,在编程上有巨大帮助
  • 支持更好的函数式编程结构
  • 匿名对象(无类声明)和数据类(由 Holder 实现的线程安全)
  • 类型的自由转变与协变, 无通配符泛型
  • 字符串模板 (如 “字符串长度为 ${s.length}”)
  • 大量预置的实用函数
  • …还有很多

有关 Kotlin 与 Java 的更全面比较,请访问官方网站

以下步骤假设您使用的是最新版本的IntellIJ IDEA

编写过程中的限制

* 决不能!决不能!决不能将 Kotlin 文件用于编写 Mixins!

* …但是,您可以将代码重定向到 Java Mixin 中 ObjectCompanion Object 中的方法,以调用标有 @JvmStatic 注解的函数。

步骤 1: 配置与初始化 Mod

按流程完成配置步骤 — 请参阅 Fabric 模组教程。如果您已经配置好 Mod 工程,请转到下一步。

步骤 2: 使用 IntellIJ 配置 Kotlin

此步骤本质上是使用 “在项目中配置 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 进行编写了。

步骤 3(推荐):修改 gradle 文件以添加 Fabric Kotlin Modding 依赖库

将官方 Fabric Kotlin 库添加到您的 `build.gradle` 文件中

上一步添加了对 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 获知更多信息。

升级 jvmToolchain 的版本

编译 Kotlin 时可能会出现一些错误,因此最好根据您的 MineCraft 版本升级相对应的 jvmToolcahin 的版本(Kotlin 默认编译为 Java 8):

jvmToolchain(11)

一般情况下,游戏版本小于 1.17 时使用版本 11 , 1.17 使用版本 16 , 大于等于 1.18 的使用版本 17

zh_cn/tutorial/kotlin.txt · Last modified: 2024/07/17 01:57 by dreamuniverse