Aeronautics Levitite Server Fix

Quick rating

Community listing page, reviews here may not be monitored by the author.

Aeronautics Levitite Server Fix

By daciteOwner

No reviews yet

Lets Levitite Blend crystallize on dedicated servers for Create: Aeronautics 1.2.1 and older (fixed upstream in 1.3.0).

Mod Loaders
Minecraft

About

Description

Aeronautics Levitite Server Fix

A tiny server-side fix for Create: Aeronautics that lets Levitite Blend crystallize on dedicated servers.

Do you need this? Only if you run Create: Aeronautics 1.2.1 or older on a dedicated server. This bug is already fixed upstream in Aeronautics 1.3.0 — if you can update to 1.3.0+, do that instead and you don't need this mod. (1.3.0 requires Sable 2.0, so this exists for packs that are pinned to Aeronautics ≤1.2.1 / Sable 1.x.)

The problem

On a dedicated server, right-clicking Levitite Blend with a catalyzer (torch, flint & steel, fire charge, campfire) does nothing, and the server log throws:

java.lang.RuntimeException: Attempted to load class
  net/minecraft/client/player/LocalPlayer for invalid dist DEDICATED_SERVER
    at net.neoforged.fml.common.asm.RuntimeDistCleaner.processClassWithFlags
    at dev.eriksonn.aeronautics.network.packets.LevititeCatalystCrystallizationPacket.handle(:38)
→ Failed to process a synchronized task of the payload: aeronautics:levitite_blend_crystallize

It works in singleplayer because the integrated server shares the client distribution.

Why: the server-side crystallization packet handler called LevititeCatalyzerHandler.isCatalyzer(...). That class is client-tainted — its onUse references the client-only LocalPlayer — so loading it on a dedicated server trips NeoForge's RuntimeDistCleaner, the packet fails, and crystallization never happens.

(Tracked upstream as Simulated-Project issue #664; fixed by commit a86bd1d, released in Aeronautics 1.3.0.)

The fix

A single Mixin redirects that one tainted call to a server-safe inline item-tag check — exactly what isCatalyzer computes internally (item.is(#aeronautics:levitite_catalyzer) || item.is(#aeronautics:levitite_soul_catalyzer)). The dedicated server therefore never loads the client-tainted class, and the rest of the handler (which is already dist-safe) crystallizes normally.

  • No compile-time dependency on Aeronautics — the Mixin targets it by name.
  • The Mixin config is non-required: on Aeronautics 1.3.0+ (where the method was refactored away) it simply finds no target and no-ops harmlessly instead of crashing. So it's safe to leave installed across an Aeronautics update.

Install

  • NeoForge 1.21.1 only.
  • Put the jar in your server's mods/ folder. Clients don't need it (singleplayer already works), though it's harmless if present.
  • Requires Create: Aeronautics to do anything; does nothing on its own.

Compatibility

Aeronautics version Effect of this mod
≤ 1.2.1 Fixes server-side levitite crystallization
≥ 1.3.0 No-ops (already fixed upstream) — safe to remove

License

MIT. Contains no Create: Aeronautics code — the Mixin references it by name only.

Credits

  • Create: Aeronautics by Eriksonn / The Creators of Aeronautics.
  • Root-cause writeup and fix by DaciteRocks.