Main body — from @BoomEaro (PR #98, the 100 commits)
- Minecraft versions: 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1
- Rewrote login → configuration phase for the post-1.20.5 known-packs handshake (
PacketKnownPacks,PacketUpdateTags, per-versionPacketRegistryData) - New play packets:
PacketLogin(replacesPacketJoinGame),PacketChunkWithLight(replacesPacketEmptyChunk, real heightmaps + biome palette + light update),PacketGameEventwithstart_waiting_for_chunks - Redesigned
PacketPlayerPositionAndLookfor the 1.21.2 teleport-flags bitset - Build modernization: Gradle Kotlin DSL, version catalog, Java 17, Lombok, GitHub Actions
- Adventure stack (api / gson / legacy / plain / json / nbt) + MiniMessage support in every text field
- Netty 4.2 with native transports: epoll, io_uring (Linux x86_64/aarch64), kqueue (macOS x86_64/aarch64); new
TransportTypeenum with NIO fallback - Per-connection packet/byte rate limiting in
ChannelTrafficHandler VersionedDimension,versioncommand, refactored configuration serializers
On top — drive-by patches
@-prefix for external secrets (from @YueMi-Development):infoForwarding.secretand.tokenscan load their value from a file when the string starts with@. Lets operators keep credentials out ofsettings.yml(Docker/K8s secrets, SOPS).logPlayersIpflag (from @Biquaternions, PR #96): whenfalse, redacts the player address in the connect log (<redacted>). GDPR/privacy convenience.
Breaking changes for users coming from 1.8.x
- JRE: 11 → 17 required
dimension: NETHER→dimension: THE_NETHERuseEpoll: true→netty.transportType: EPOLL(+netty.threads.{bossGroup,workerGroup})- New keys:
secureProfile,logPlayersIp,traffic.* - Jar name:
NanoLimbo-<ver>-all.jar→NanoLimbo.jar - Text fields now accept MiniMessage; legacy
&codes and raw JSON still parse
Credits
This release is built on top of community contributions across multiple forks.
Huge thanks to everyone listed below — expand each section to see what they contributed.
BoomEaro (Valentine) — Minecraft 1.21.2 → 26.1, modernization
The bulk of post-1.21 protocol work and toolchain modernization:
- Protocol support for 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11 and 26.1
- Rewrote the login → configuration phase for the post-1.20.5 known-packs handshake:
PacketKnownPacks,PacketUpdateTags, per-versionPacketRegistryData - Rewrote play packets for the 1.21.x line:
PacketLogin(formerlyPacketJoinGame),PacketChunkWithLight(real heightmaps + biome palette + light update),PacketPlayerPositionAndLookfor the 1.21.2 teleport-flags redesign,PacketGameEventwithstart_waiting_for_chunks - Build modernization: Gradle Kotlin DSL, version catalog, Java 17, Lombok, GitHub Actions for build & release
- Adventure stack (api / gson / legacy / plain / json / nbt) + MiniMessage support in all text fields
- Netty 4.2 split modules with native transports: epoll, io_uring (Linux x86_64 / aarch64) and kqueue (macOS x86_64 / aarch64); new
TransportTypeenum - Per-connection traffic rate limiting in
ChannelTrafficHandler - Refactored configuration serializers,
VersionedDimension,versioncommand
Source: https://github.com/BoomEaro/NanoLimbo · upstream PR: #98
YueMi-Development — external secret files
@-prefix support ininfoForwarding.secretandinfoForwarding.tokens: values starting with@are read from a file relative to the working directory. Lets you keep credentials out ofsettings.yml(Docker / Kubernetes secrets, SOPS, etc.).
Biquaternions — IP logging privacy switch
- New
logPlayersIpconfig flag. Whenfalse, player IP addresses are redacted in connection logs (shown as<redacted>). Useful for GDPR / privacy-compliant deployments.
Source: https://github.com/Biquaternions/NanoLimbo · upstream PR: #96
Co-authored-by: Valentine <21033866+BoomEaro@users.noreply.github.com>
Co-authored-by: NekoMonci12 <muhammad.tamir@gmail.com>
Co-authored-by: Schroddinger <zxctl@proton.me>