Skip to content

v0.9.4 — dedicated-server crash fix, and repeat casting

Pre-release
Pre-release

Choose a tag to compare

@Hoggormino Hoggormino released this 03 Aug 17:29
· 181 commits to main since this release

Iron's Spells: Incantation 0.9.4

Bug-fix release built from the issues players reported on 0.9.3. Thanks to
@Shadower007, @Tubeess, eli_zeele, bayratbill, xxshadow007, PhsycoPhink and Kogyuu
for the reports and the diagnosis work.

Fixed

  • Dedicated servers no longer crash on startup. The server died during mod
    construction with Attempted to load class net/minecraft/client/gui/screens/Screen for invalid dist DEDICATED_SERVER. The cause was the Mods-screen config extension
    point being registered in the mod constructor: it compiles to a method that names
    the client-only Screen class, and NeoForge resolves the types a method references
    before the Dist.CLIENT check inside it can run — so a runtime guard could never
    have stopped it. Registration moved to a class the server never touches. This is the
    crash from #1 and #2, which the 0.9.1 fix covered elsewhere but not here.

  • Spell indexing now works on dedicated servers. A second, quieter server bug:
    indexing read client-only config values, which don't exist on a server, so every
    boot logged Cannot get config value before config is loaded and left the index
    empty. Servers now index normally.

  • You can cast the same spell twice in a row. The duplicate-suppression window was
    pushed forward every time it blocked a repeat, so it kept re-arming itself: with an
    always-on or voice-activated mic, background noise gets matched to the nearest spell
    name in the grammar, which meant the window never expired and the only way to recast
    was to say a different spell first. The window is now measured from the actual cast.

  • Failed casts say what actually went wrong. Casting goes through reflection, so an
    error thrown by Iron's Spells — or by another mod hooking it — arrived wrapped, and
    the message you got was the useless Cast Error: InvocationTargetException. The real
    cause is now shown and logged, with a note identifying the mod responsible. If you hit
    this on 0.9.3, one known trigger is a conflict with Iron's Restrictions (#3).

  • Iron's Spells compatibility. Current Iron's builds hand back a different shape from
    getAllSpells() than older ones. Both are now handled; previously equipped-spell
    detection could fail silently.

Changed

  • Owned-spell restriction now matches Iron's Spells' own rule — only your Curios
    spellbook slot, main hand and off hand count. Previously a spellbook anywhere in your
    inventory counted, the server then rejected the cast, and it still showed up as a
    phantom cast in your HUD streak and history.
  • sculk tentacles is now recognised — its alias could never match.
  • The voice macro recorder and its J / K keybinds have been removed.
  • Slightly tighter noise gate (600 ms → 450 ms hold).

Note for anyone who themed their HUD

Eight individual HUD colour options (text, dotReady, dotListen, dotLoad,
dotError, dotOff, meterBg, meterFill) have been removed in favour of the palette
and accent presets. Nothing breaks, but if you had set those by hand they will quietly
revert to preset colours.

Upgrading

Drop incantation-0.9.4.jar over your existing jar. No config migration.

Server owners: this is the release you want — 0.9.0 and 0.9.3 both crash on dedicated
servers. If your modpack still ships 0.9.0, please update.