
Elytra isn't being rendered (Forge 1.19.2)
MetaflameDragon opened this issue ยท 5 comments
Elytra equipped on the player isn't being rendered (as well as on armor stands). I have no special origins or powers active (that is, I have the origins:human origin selected).
MC Version: 1.19.2 Forge
This occurs in the latest version (2.5.1), but I traced the behavior back to 2.4.4. Apugli 2.4.3 renders the Elytra correctly.
This happens even with no unrelated mods installed. My installation consists of Apugli, Caelus 1.19.2-3.0.0.6, and Origins Forge 1.19.2-1.7.1.2.
As a wild guess, this could possibly be related to #40 and the related fix in e88be81? Funny how that version specifically fixed Fabric but broke Forge.
I think I managed to zero in on the issue: My best guess is the usage of allMatch()
. The Fabric patch used noneMatch()
, which returns true for an empty stream - however, allMatch()
in the Forge patch also returns true for an empty stream. This means that if the player does not have any powers that modify equipped item rendering (apugli:modify_equipped_item_render
) for the chest slot, the return value will be set to false and the elytra will not render.
I applied a quick dummy test power onto the player, which tries to render air on the player's chest without overriding, and the Elytra began rendering.
{
"name": "Test power",
"type": "apugli:modify_equipped_item_render",
"slot": "chest",
"stack": {
"item": "minecraft:air"
}
}
Thanks for looking into this, I'll probably separate the classes into loader specifics when I can.
I'll fix this at some point.
It's luckily non-critical because it has a hacky fix. If I find some spare time, I might drop a PR (once I learn how to set up a local Forge modding environment).
I've implemented a fix for next update, thanks for explaining the issue to me so thoroughly.