File Details
Runic Tome 0.1.3 (Forge 1.20.1)
- R
- Apr 19, 2026
- 78.54 KB
- 214
- 1.20.1
- Forge
File Name
runictome-0.1.3.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
[0.1.3] — 2026-04-19
Fixed
- Unlock toasts showed the book ID instead of its name. When a book was absorbed, the toast displayed the raw
ResourceLocation(e.g.patchouli:book_of_the_dead) instead of the human-readable title.ClientDataCache.acceptUnlocknow resolves the display name throughRunicTomeAPI.adapterFor(systemId).displayName(key)— matching what the tome's library screen already did. Patchouli books render their real localized titles; item-based books render their item display component.
Added
ui.showUnlockToast(bool, defaulttrue) — mutes the unlock toast per client.performance.sweepIntervalTicks(int, default20, range1..1200) — how often the server sweeps player inventories for unabsorbed books. Set to1to restore the previous per-tick behaviour. Pickup/craft/smelt/container-close events remain handled separately and are unaffected.items.grantTomeOnFirstJoin(bool, defaulttrue) — disable the auto-grant for servers that distribute the tome via quest rewards or starting kits.com.otectus.runictome.api.NameFormatpublic helper —titleCase(String)extracted fromPatchouliGuideAdapterso third-party adapters can reuse the same fallback formatter.- Nicer default
GuideSystemAdapter.displayName. The interface default now returnstitleCase(key.bookId().getPath())instead of the rawResourceLocationstring. Adapters that don't overridedisplayNameget readable fallbacks for free.
Changed
- Per-tick inventory sweep is now throttled to once per second by default (configurable via
sweepIntervalTicks). Pickup, craft, smelt, and container-close are still event-driven and absorb books immediately — the timer sweep exists only as a safety net for/give, hopper inserts, and other paths that bypass Forge's pickup events. This partially reverts the v0.1.0 change that dropped the interval knob; the trade-off of up-to-one-second latency on the fallback path is worth the ~95% reduction in per-player per-tick work on large servers.
Removed
CapabilityEvents.onJoinLevelhandler. It fired a full-NBT sync on every dimension transition alongside the dedicatedonPlayerChangedDimension/onPlayerRespawn/onPlayerLoggedInhandlers — a duplicate sync with no behavioural benefit.