3.0.0 · neoforge · 1.21.1
Curse Maven Snippet
What's new
[3.0.0] - 2026-10-23
JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working.
Added
- Typed configs (
tn.naizo.jauml.config):JaumlConfig.bind(subdir, name, MyConfig.class)binds a plain Java class to a JSON file.@Commenttext and@Rangebounds are written as//comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners,update,reload/reloadIfChangedandJsonMigratormigrations are supported. - Platform facade (
tn.naizo.jauml.platform):Platform(loader, physical side, game and config directories, Minecraft version, mod versions with range checks) andServices.loadfor a mod's ownMETA-INF/servicesimplementations. Replaces the per-mod MultiLoaderServices/IPlatformHelpercopy. - Server events and scheduler (
tn.naizo.jauml.server):ServerEvents(starting, started, stopping, stopped, tick start/end,currentServer()),PlayerEvents(join, leave) andScheduler(runLater,runRepeating,queueServerWork), fired from Fabric API, NeoForge and Forge events. Event<T>(tn.naizo.jauml.event): a small prioritized listener list for mods' own events.- Utilities:
Version/VersionRange(Maven ranges, comparators,~/^, wildcards) andCooldowns(per-key cooldowns on any clock). PlatformProviderdefault methods:getGameDirectory,isPhysicalClient,getModVersion,getModName,getLoadedModIds,getMinecraftVersion.- Root Gradle build (
./gradlew buildAll,testAll,cleanAll,syncVersion -PmodVersion=x.y.z) and a CI workflow that tests and builds every workspace. -Djauml.selfTest=trueboot check that logs every server event and a scheduler run, plus GameTest server runs (runGameTestServer,runGametest) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt.
Changed
- Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3. The 1.21.11 and 26.1.2 workspaces are removed.
- Each jar declares only its own Minecraft version (
[26.2,26.3),[26.3,26.4)instead of[26.x,27)). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning.
- Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12).
JaumlConfig.isCompatibleaccepts 2.x requirements (API_BASELINE_MAJOR = 2).JaumlConfigLibstays deprecated but is no longer marked for removal; its signatures are pinned by a test.Constants.MOD_VERSIONreadsJaumlConfig.LIBRARY_VERSION, and a test fails if it drifts fromgradle.properties.- Platform providers are loaded once and shared (
PlatformUtil,JaumlInitializerandJaumlConfigno longer each scanServiceLoader). - Loader entrypoints no longer log template "Hello world" messages.
- Toolchains: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1.
Removed
- Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
This mod has no additional files

