Dynamic attribute tools that extend a vanilla tool class but aren't tagged don't work
Juuxel opened this issue ยท 2 comments
Warning: heavy tool attribute API stuff ahead.
This bug is mostly theoretical (the only example of this I've seen is in the tool attribute testmod...), but it's still a low-priority bug that could be fixed.
If a tool:
- Extends a vanilla tool class (only tested with
SwordItem
, but probably affects the other ones too) - Implements
DynamicAttributeTool
- Is not tagged with
#fabric:whatever_tool
(such as#fabric:swords
),
mines a block that uses the legacy way of declaring mining levels via block settings, the tool is not effective when it should be. This is because of how the tool attribute API structures its handlers. The relevant ones would be:
ModdedToolsModdedBlocksToolHandler
: technically the one that is supposed to apply, but doesn't since it's only registered for taggedDynamicAttributeTool
sVanillaToolsModdedBlocksToolHandler
: does not help either since the tool implementsDynamicAttributeTool
, so this handler is skipped
(The other handler types aren't relevant here at all.)
Not sure what should even be done about this tbh, if you implement DynamicAttributeTool
you opt into specifying tool tags explicitly.