Kotlin · Bukkit · Spigot · Paper

KOTLIN 插件 生成器

同样的 Bukkit API,用 Kotlin 来写。描述插件要做什么,Codexe 就会搭建带 Kotlin 源码集的 Gradle 项目、正确的 plugin.yml,并能在你下载之前先替你编译出 JAR。

为什么要生成 Kotlin 插件

在 Bukkit 需要的地方做到空安全

Bukkit 经常返回 null:离线玩家、不存在的世界、缺失的配置键。Kotlin 让这些情况在编译时就变得明确,而不是半夜两点在你的服务器控制台里才暴露。

真正的 Gradle 项目

build.gradle.kts 已为 Kotlin JVM 插件和 Paper/Spigot 仓库配好,源码布局也是标准的。不会只给你一个文件,让你自己找地方安放。

样板代码少得多

配置模型用数据类,Player 和 ItemStack 上用扩展函数,用作用域函数代替层层嵌套的空值检查。同样的逻辑,代码明显更少。

也支持 Folia 和代理端

如果你用的是 Paper 的多线程分支,请注意 Folia 去掉了单一主线程,需要感知区域的调度。请在插件生成器上选择 Folia 目标,让调度从一开始就是对的。网络层面的工作请使用代理端插件生成器。插件文档说明了这些差别。

提示词示例

> 一个适用于 Paper 1.21 的 Kotlin 插件,带 /kit 命令,发放可配置的物品套装,用数据类保存每个玩家的冷却时间,并使用带默认值的 YAML 配置。
> 一个 Kotlin 插件,把每次破坏方块异步记录到每个世界一个的文件里,并添加 /blocklog <player> 来回看最近 20 条记录。
> 一个 Kotlin 插件,为一件附魔物品添加自定义合成配方,并带一个监听器,阻止它在下界以外的地方使用。
> 一个 Kotlin 插件,带分页界面列出在线玩家,点击即可传送,需要权限节点才能使用。

Kotlin 插件生成器常见问题

Kotlin 插件能在普通的 Spigot 或 Paper 服务器上运行吗?

+

能。Kotlin 编译成普通的 JVM 字节码,所以服务器既不知道也不在乎插件是用哪种语言写的。它的加载方式和 Java 插件完全一样。

我需要在服务器上安装什么吗?

+

不需要。Kotlin 标准库会在构建时被打包(shade)进 JAR,所以插件是自包含的。不过这确实会让 JAR 比功能相同的 Java 插件更大。

Maven 还是 Gradle?

+

Gradle。Kotlin 目标使用 Gradle 的 Kotlin 插件,这是 JVM 上 Kotlin 的标准工具链。Java 目标使用 Maven。

Kotlin 在这里到底有什么好处?

+

主要是空安全,以及更少的繁琐代码。Bukkit 的 API 在很多地方会返回 null,比如 getPlayer、getWorld、配置查询,而 Kotlin 的类型系统会强制你在编译时处理这些情况,而不是在生产环境里以 NullPointerException 的形式才发现。数据类、扩展函数和作用域函数,也能大幅减少配置和监听器代码中的样板。

能在一个插件里混用 Java 和 Kotlin 吗?

+

生成器产出的是 Kotlin 源码集。Gradle 可以编译混合源码,所以你之后可以加入 Java 文件,但生成的项目以 Kotlin 为主。

我该选 Kotlin 还是 Java?

+

如果你想最大程度兼容教程、现成的代码片段和别人的代码,就选 Java,因为几乎所有 Bukkit 资料都以 Java 为前提。如果你对 Kotlin 很熟,想要更简洁、空安全的代码,就选 Kotlin,两者的 API 完全一样。

Prefer Java, or working somewhere else in the stack? Codexe also generates:

Codexe 如何构建和检查这些项目、需求里该写什么,以及常见问题:Spigot and Paper plugins (Java or Kotlin) 指南。

准备好做新的插件了吗?

免费版每天补充 50K token,足够一次性做出一个小型 Kotlin 插件。

开始锻造
Kotlin Minecraft 插件生成器:AI 构建的 Kotlin 版 Bukkit 插件 | Codexe