Skip to content

Allow specifying equipment slot for item attribute modifiers#334

Open
Travja wants to merge 1 commit into
devfrom
split/13-equipment-slot-attribute-targeting
Open

Allow specifying equipment slot for item attribute modifiers#334
Travja wants to merge 1 commit into
devfrom
split/13-equipment-slot-attribute-targeting

Conversation

@Travja

@Travja Travja commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Split out of #320 (piece 9/12, independent).

The attributes section of an item config accepted value:operation (e.g. 2.0:ADD_NUMBER). A third, optional segment now selects the Bukkit EquipmentSlot the modifier applies to (e.g. 2.0:ADD_NUMBER:HAND), letting an attribute be scoped to a specific slot instead of applying everywhere.

Note for reviewers: in applyItemMeta (ModuleItem.java, ~line 291), a slot-aware mod is constructed but never used — the loop still calls meta.addAttributeModifier(attribute.getKey(), attribute.getValue()), i.e. the original, non-slot-scoped modifier. As written, the new equipment-slot config option has no visible effect on generated items; the loop likely needs to pass mod instead of attribute.getValue().

Backward compatibility

Already fully backward compatible — the third :SLOT segment is optional (attrData.length > 2 ? attrData[2] : null), so every existing 2-segment attribute config parses exactly as before.

The "attributes" section of an item config accepted "value:operation"
(e.g. "2.0:ADD_NUMBER"). A third, optional segment now selects the
Bukkit EquipmentSlot the modifier applies to (e.g.
"2.0:ADD_NUMBER:HAND"), letting an attribute be scoped to a specific
slot instead of applying everywhere.

Note for reviewers: in applyItemMeta (ModuleItem.java, ~line 291),
a slot-aware `mod` is constructed but never used — the loop still
calls meta.addAttributeModifier(attribute.getKey(), attribute.getValue()),
i.e. the original, non-slot-scoped modifier. As written, the new
equipment-slot config option has no visible effect on generated
items; the loop likely needs to pass `mod` instead of
`attribute.getValue()`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants