radiolink-2.0.4.jar
Curse Maven Snippet
What's new
Changelog
2.0.4 — 2026-08-03
- Build fix: removed the
onChunkUnloaded()override inRepeaterStationBlockEntity. That hook is a Forge addition toBlockEntityand does not exist in vanilla, so it does not exist on Fabric either. Nothing is lost: vanilla already callssetRemoved()on every block entity of a chunk when the chunk unloads, and that is where the repeater unregisters itself. tools/check-sources.pynow also greps for Forge-only APIs (onChunkUnloaded,getCapability,DistExecutor,ForgeConfigSpec, ...). The offline javac check cannot see this class of error on its own: with the Minecraft classes absent, every@Overridefails, so "does not override" has to be filtered out wholesale.
2.0.3 — 2026-08-03
- Build fix (the real one): every
@Nullablecame fromjavax.annotation, which Forge provided transitively and Fabric does not — 26 compile errors across 10 files. Noworg.jetbrains.annotations.Nullable, the Fabric standard, with an explicitcompileOnlydependency so the build never relies on it arriving by chance. - Added
tools/check-sources.py, the offline sanity check used while porting. It compiles the sources without the Minecraft/Fabric jars and reports only genuine problems — in particular any import from a package that is not supposed to be missing, which is exactly what slipped through in 2.0.2. Not a substitute for a real build, just a fast first filter.
2.0.2 — 2026-08-03
- Build fix: dropped
EditBox.setHint()on the call-target field. It was the one API in the port I could not confirm against the 1.20.1 javadocs, so the placeholder text is now drawn by hand instead. Same look, no risk.
2.0.1 — 2026-08-03
- Build fix: the Gradle wrapper was still the one inherited from the Forge project (8.1.1), which Fabric Loom 1.6 refuses to run on. Now Gradle 8.8. No gameplay change.
2.0.0 — 2026-08-03 — Fabric port
The mod now runs on Fabric (Minecraft 1.20.1). This is a port of the Forge 1.4.1 codebase, not a rewrite: the radio physics, the DSP, the Simple Voice Chat integration and the whole GUI are the same code. Only the loader-specific layer changed.
Ported
- Entrypoints:
ModInitializer/ClientModInitializer, plus thevoicechatentrypoint infabric.mod.json(Fabric registers the Simple Voice Chat plugin that way instead of by annotation). - Registration through the vanilla registries +
FabricItemGroupandFabricBlockEntityTypeBuilder. - Networking: one channel per packet via
ServerPlayNetworking/ClientPlayNetworking, with the same payloads as before. The client half lives in its own class, because on Fabric a dedicated server has no client classes at all. - Events:
ServerTickEvents,ServerLifecycleEvents,ServerPlayConnectionEvents.JOIN, andServerMessageEvents.ALLOW_CHAT_MESSAGEfor chat blocking (commands still never pass through it). - HUD:
HudRenderCallbackinstead of Forge overlays. - Config moved to
config/radiolink.json(plain JSON, created on first start, missing fields keep their defaults). Fabric has no per-world server config, so it is a single file for the whole installation. - Obstacle materials use RadioLink's own block tags
(
radiolink:rf_transparent,radiolink:rf_dense) instead of the Forge ones. - Built with
loom.officialMojangMappings(), which is why the game code reads exactly like the Forge version.
New in 2.0.0
- Private calls: type a player name in the field next to CALL and only that player is rung — everyone else on the channel hears nothing, like the individual call of a real DMR radio. Leave it empty for the usual group call.
- Missed calls now behave properly: the notice is delivered only when you
are genuinely back in coverage of another player or a repeater. The old
"deliver anyway after a while" fallback is off by default
(
missedCallGraceTicks: 0) and can be re-enabled by setting a tick count. - The pager tone travels through the normal radio engine, so it leaks out of the recipients' speakers for bystanders to hear, exactly like voice.
- The "Radio Speaker" volume slider in the Simple Voice Chat menu (added in 1.4.0, made reliable in 1.4.1) controls how loud other players' handheld radios are for you.
- The "i" screen in the radio GUI now also explains group vs private calls.
Not included
The Forge line stays at 1.4.1. This is a separate project: the two do not share a build, so a change made here has to be ported by hand if you want it on Forge as well.
This mod has no additional files

