[Bug] angel wings spell does not apply when wearing items overriding methods
Linguardium opened this issue ยท 7 comments
Observed behaviour
wear item overriding canElytraFly
IItemExtension default implementation not used. mixin doesnt apply
Cant fly if worn item doesnt allow flying (such as out of power)
Expected behaviour
flight is enabled regardless of equipment
Steps to reproduce
wear item overriding canElytraFly
IItemExtension default implementation not used. mixin doesnt apply
Cant fly if worn item doesnt allow flying (such as out of power)
Server Type
Single Player
Crashlog
No response
Iron's Spells N Spellbooks version
verified issue in current codebase as of 11/11/2024
Forge version
neoforge 1.21.1
Other mods
N/A
Crashlog Check
- I understand if this is a crashbug and I did not attach a crashlog, this will not be handled
Just to be clear, super in this case is a default interface implementation that doesn't exist. You are indicating that you aren't going to work on an issue with your implementation. It doesn't fall to any other mods. It also is not limited to mods...
if an item overrides canElytraFly without respecting super, then i consider it an issue with them. other mods such as attributelib use this same method and would therefore run into the same issue with this particular mod's armor. thus, this will not be worked on from my end
even though overriding it technically works in their implementation, it is still best practice to respect super, especially since modding is an ecosystem.
for example, if i had an entity with custom damage handling that omitted firing the damage event pipeline, i would be responsible for the fact other mod's logic wouldnt interact with my entity, even though my entity would work as indented in isolation.
If you create an interface with a default implementation of a method, it isn't even best practice to try to call super from classes that implement the method and don't use the default implementation
These aren't child classes. It's an interface and a default implementation
well it could just be fixed by moving the mixin a layer higher so it cannot be overriden