跳到正文

Aeronautics Levitite Server Fix

作者:dacite

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

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

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.

常见问题

Aeronautics Levitite Server Fix 支持哪些 Minecraft 版本?

Aeronautics Levitite Server Fix 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。

Aeronautics Levitite Server Fix 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。

评论

登录后评论和评分

dacite 的其他作品

查看全部 →