46 lines
2.7 KiB
Markdown
46 lines
2.7 KiB
Markdown
# Shiroha
|
|
|
|

|
|

|
|

|
|
|
|
Shiroha 是 [Folia](https://github.com/PaperMC/Folia) 的一个分支。Folia 是基于 Paper 的多线程 Minecraft 服务端,Shiroha 在其基础上跟进最新 Minecraft 版本(当前为 26.2,见 `gradle.properties`),做一些修正、性能优化和配置化的功能扩展。
|
|
|
|
本项目为半闭源项目,以本仓库内的内容为准。
|
|
|
|
## 构建
|
|
|
|
需要 Java 25+(构建工具链见 `build.gradle.kts`)。
|
|
|
|
```bash
|
|
./gradlew applyAllPatches
|
|
./gradlew createPaperclipJar
|
|
```
|
|
|
|
产物为 paperclip jar,位于 `shiroha-server/build/libs/`。构建任务基于 paperweight-patcher,其余任务可通过 `./gradlew tasks` 查看。
|
|
|
|
## 功能
|
|
|
|
功能大多带有配置开关,配置项定义集中在 `shiroha-server/src/main/java/io/nanachiyo0721/shiroha/config/modules/`,各项的说明直接写在配置文件的注释中,建议以生成出的配置文件和源码注释为准。
|
|
|
|
具体改动以 patch 文件为准:
|
|
|
|
- `shiroha-server/minecraft-patches/features/` — 对 Minecraft 源码的改动
|
|
- `shiroha-server/paper-patches/features/` — 对上游 Paper 的改动
|
|
- `shiroha-api/paper-patches/features/` — API 侧改动
|
|
|
|
主要类别:
|
|
|
|
- **修正**:Folia 相关的线程与区域化问题、传送与末影珍珠、地狱门 ticket、实体同步等,对应文件名前缀多为 `Fix-*` / `Correct-*`。
|
|
- **优化**:包含部分来自 Leaf、Gale、Purpur、Pufferfish、Lithium 等项目的移植与改写,对应 patch 文件名带有来源前缀;移植的准确性建议对照 patch 内容与原项目确认。
|
|
- **配置系统**:自研的注解式配置框架(`shiroha-server/src/main/java/io/nanachiyo0721/shiroha/config/`),支持热重载与基于 dialog 的图形化配置界面,由 `/shirohaconfig` 命令操作(`shiroha-server/src/main/java/io/nanachiyo0721/shiroha/commands/config/`)。
|
|
- **存档格式**:除原版 `.mca` 外支持 `b_linear`(带缓冲刷写的 Linear)区域格式(`shiroha-server/src/main/java/io/nanachiyo0721/shiroha/enums/EnumRegionFormat.java`)。
|
|
- **状态栏**:TPS、内存、区域信息状态栏,由 `/bar` 命令与配置控制(`shiroha-server/src/main/java/io/nanachiyo0721/shiroha/functions/bars/`)。
|
|
- **其他**:实体唤醒时长、实体数量限制(Kaiiju)、传送门速率限制、CPU 亲和性等,详见对应 patch 与配置模块。
|
|
|
|
以上列表不保证完整,未列出的改动请自行查阅 patch 目录。
|
|
|
|
## 许可
|
|
|
|
本项目按 [GPL-3.0](LICENSE) 许可。其中从其他项目移植的代码,其归属与许可情况见各 patch 文件内的说明。
|