Skip to content

RetroAPI 0.3.2 for Minecraft b1.7.3 (Ornithe)

BetaJuly 27, 2026Minecraft b1.7.3Ornithe11 downloads on Modrinth
This isn't the latest version. The latest for b1.7.3 · Ornithe is 0.4.1Open 0.4.1 →
Test version — may have bugs.

Files · 1

retroapi-0.3.2.jarPrimary1.38 MBDownload
Primary · 1.38 MB
SHA-1dffb9619b7bcefd6e9cbee32d03fe5d87f6646abSHA-51258f79fe3a82ffd4747743d1da541047585c35de9f6b2d0e53dd8ef2479309625d518ea02f7a48d0a8bd38c23e7745f691907d20481b5e3e570267a9c237bb75a
Download

What's changed

Shared component state, and the IDE storm.

Two bugs that only showed up once mods started leaning on 0.3.x. Update if you use data components, or if your IDE has started demanding you implement methods you never wrote.

  • Fixed: every item shared one set of components. RetroComponentType.getDefault() returned the exact instance passed at registration, so RetroComponents.get(stack, TYPE) on any stack that had not set a value handed back the same object every time. Mutating it — get(stack, LIST).add(x) — wrote into the value every other stack reads, so the data appeared on every item in the game at once, and deleting one item's value looked like it worked only sometimes. Only mutable components could show it. List/Set/Map defaults are now copied per read, so existing mods are fixed with no code change, and RetroComponents.registerSupplied(id, supplier, serializer) covers a mutable default of a type RetroAPI cannot copy for you.
  • Fixed: mods inherited 56 unimplemented methods. RetroItemAccess and RetroBlockAccess declared their methods abstract, and 0.3.0 made interface injection actually work — so Item and Block genuinely implement them, and from an IDE's point of view every class extending either had to implement all 56. javac never complained, because it does not re-verify a binary superclass, which is why it looked like an IDE-only hallucination and only surfaced once the class implemented some interface of its own. Every method is now a default that throws; the mixin's implementation is a method on the class, and a class method always wins over an interface default, so runtime behavior is unchanged.
  • Fixed: the client no longer tries to load dedicated-server classes. Thirteen mixins targeting net.minecraft.server.* sat in the mixin config's common list, so every client launch attempted each one and logged Cannot load class ... in environment type CLIENT. b1.7.3 has no integrated server — singleplayer is the client — so none could ever apply there. A client launch now logs no mixin warnings at all.

Reminder for anyone storing block state as an integer: RetroBlockState.getIndex() is 12 bits, not 4. The low nibble rides vanilla metadata and bits 4–11 live in the sidecar, so world.setBlockMeta(x, y, z, state.getIndex()) silently truncates for any block with more than 16 states. Use RetroStates.set(...).

Full feature set: https://matthewperiut.github.io/retroapi/features-0.3.0.html

Built and validated with -Pstationapi on Ornithe (b1.7.3): all four launch smoke suites pass (client, server, and both with StationAPI), plus the headless populate self-check and the vanilla↔StationAPI conversion round-trip.

Dependencies of this version

The site uses cookies: the necessary ones for sign-in and the theme, plus the Yandex Metrica and LiveInternet visit counters — they show us how the site is used. We have no advertising cookies. More