3.0 KiB
Shiroha
Shiroha is a fork of Folia, a multithreaded Minecraft server based on Paper. It tracks recent Minecraft versions (currently 26.2, see gradle.properties) and applies fixes, performance optimizations, and configurable features on top of upstream.
This is a partially closed-source project; the contents of this repository are the reference.
Building
Requires Java 25+ (build toolchain configuration is in build.gradle.kts).
./gradlew applyAllPatches
./gradlew createPaperclipJar
The output is a paperclip jar in shiroha-server/build/libs/. The build is based on paperweight-patcher; other tasks can be listed with ./gradlew tasks.
Features
Most features are behind configuration switches. Config definitions live in shiroha-server/src/main/java/io/nanachiyo0721/shiroha/config/modules/, with per-option documentation written directly into the generated config file comments — treat the generated config and the source annotations as the authoritative description.
The actual changes are tracked as patch files:
shiroha-server/minecraft-patches/features/— changes to Minecraft sourcesshiroha-server/paper-patches/features/— changes to upstream Papershiroha-api/paper-patches/features/— API-side changes
Main categories:
- Fixes: Folia threading and regionization issues, teleport and ender pearl behavior, nether portal tickets, entity desync, etc. — patch filenames mostly use the
Fix-*/Correct-*prefixes. - Optimizations: includes ports and reworkings taken from projects such as Leaf, Gale, Purpur, Pufferfish, and Lithium; these are marked with their source prefixes in patch filenames. Verify the patch contents against the original projects for attribution and accuracy.
- Config system: a custom annotation-based configuration framework (
shiroha-server/src/main/java/io/nanachiyo0721/shiroha/config/) with hot reload and a dialog-based GUI editor, operated through the/shirohaconfigcommand (shiroha-server/src/main/java/io/nanachiyo0721/shiroha/commands/config/). - Region formats: supports
b_linear(buffered-flush Linear) region format in addition to vanilla.mca(shiroha-server/src/main/java/io/nanachiyo0721/shiroha/enums/EnumRegionFormat.java). - Status bars: TPS, memory, and region info bars, controlled via the
/barcommand and config (shiroha-server/src/main/java/io/nanachiyo0721/shiroha/functions/bars/). - Miscellaneous: entity wake-up duration, entity limits (Kaiiju), portal rate limiting, CPU affinity, and more — see the corresponding patches and config modules.
This list is not guaranteed to be complete; for anything not listed here, check the patch directories yourself.
License
Licensed under GPL-3.0. Code ported from other projects retains its own attribution and licensing terms as documented in the respective patch files.