前言与环境
介绍 Rebar 附属组件开发的基础知识。
最后更新时间
目前不支持 Rebar 附属组件开发。Rebar 正在快速变化,下一个 Rebar 版本发布时,你的附属组件可能会以可怕的方式崩溃。你仍然可以制作附属组件,但要注意你可能需要做出重大更改才能保持更新。
前言
所以,你想写一个 Rebar 附属?这套教程就是给你写的。不过你还是要懂一些基本的编程——如果你连 IDE、编译器都没用过,或者没写过 for 循环,跟教程可能会有点吃力。
开始之前先说几件事...
前置条件
我们假设:
- 你了解 Java 编程的基础知识。
- 你有 GitHub 账号,能在电脑上用 git——git 新手的话,推荐用 Github Desktop。
- 装好了 IntelliJ 并且会用。
并非必须拥有插件开发经验,但如果有的话会很有帮助!
Rebar 与 Pylon 的区别
开始前务必搞清楚 Rebar 和 Pylon 的区别。Rebar 是一个工具库,提供创建自定义方块、实体等的方法。Pylon 则是一个附属,提供了一套"基础"内容。
你的附属组件是否需要 Pylon 完全由你决定。附属组件模板默认包含 Pylon 作为依赖,但这可以轻松更改。
关于 Kotlin 的说明
虽然你可以纯用 Java 写附属,但有经验的 Java 程序员可能会对 Kotlin 感兴趣。它是 Java 的替代方案,用起来更顺手(尤其是语法!),还有一些 Java 没有的好用功能。Rebar 本身就是用 Kotlin 写的。
“我卡住了,救命!”
- 如果有错误信息,请仔细阅读它。
- 通过 Google 搜索问题(对于 Paper/Rebar/Pylon 开发,LLM 往往非常不可靠)。
- 如果存在相关教程,请重新阅读一下。
- 如果存在相关的文档,请查看。
- 加入 Pylon Discord,如果可能的话,使用搜索栏搜索与你问题相关的关键词,看看之前是否有人问过。
- 在 Pylon Discord 上寻求帮助。
现在让我们开始吧!
环境搭建
从模板创建附属组件仓库
Rebar 有一个附属组件模板,写附属需要的东西都在里面了。在模板仓库页面上点 Use this template 创建你自己的仓库,然后克隆下来。
接下来,在 IntelliJ 中打开你的仓库。
IntelliJ 导入项目可能需要几分钟。
![]()
模板里有什么?
该模板用 Gradle 构建。项目根目录下有 gradlew 和 gradlew.bat,这是 Gradle 包装器,用 IntelliJ 的话不用管它们。还有 build.gradle.kts,告诉 Gradle 怎么构建你的项目。
build.gradle.kts 和 gradle.properties 存放项目的基本信息:名称、版本、Rebar 版本、主类和组名。打开这两个文件把信息改成你自己的。如果你对"主类"和"组名"感到困惑,这个链接可能会有所帮助。
模板中已经有一个示例方块和一个示例物品,还有主附属组件类 ExampleAddon.java。
这节教程我们从头加一个新物品。
运行测试服务器
附属组件模板自带 "run server" 任务,可以直接在 IntelliJ 里跑测试服务器。打开 Gradle 面板,找到 runServer 双击就行。这会启动一个新服务器,并在项目根目录下生成一个 run 文件夹存放服务器数据。(不用 IntelliJ 的话,直接跑 ./gradlew runServer)你可以随意改这个服务器,加插件、改配置都行。

你应该会看到一个弹出控制台显示服务器输出。下载服务器可执行文件大概需要一两分钟。初次运行会启动失败,因为你需要同意 EULA。进刚生成的 run 文件夹,打开 eula.txt 同意一下协议,然后重新跑 runServer 任务。
要关闭服务器,请在控制台输入 stop 或在游戏内使用 /stop。
别点 IntelliJ 的停止按钮。它不会正常关服务器,然后你就杀不掉那个进程了。服务器会变成不死之身。整个现实都会被吞噬。没̷̧̡͙̓̑͠有̛̤͎̒̈̓͢什̴̰̼̑̀̎͟么̥͎̜̲͂͘͜是̧͇̟̾́̔͝安̸̵̟̰̐̒͢全̢͇̪̞̃̎͜的̶̳̬̋͂́͡。͇̜̠͉̉͟͠你̞͔̩̲̓̽́们͚̲̰̖̳̅́都̢̛̥̰̫̌̒将̨̳̟̈̽̒̏被͇̦̅̏̋̃̕全̦̣̖̳̼̏̅能̧̪̤̙̯̉̒的̘̱͍̆̅̉͞ ̡̭̳͇̗̗͝J̸̤̥̊̍͞͡V̧̩͈̗̟̅̑M̶͕̙̟̼͈̓ ̷̷̩̌̉̆͡彻̢̛̙̹̊̚͟底̪̓̌͂̒̍͝摧̥̳̜̬̆̇̽毁̫̩̌.̯̯̣。
服务器启动后,用 localhost:25565 连接。记得在控制台输入 op <你的用户名> 给自己管理员权限。
默认情况下,附属组件模板包含一个示例物品和一个示例方块。尝试使用 /rb give <用户> exampleaddon:example_item 来获得示例物品。