Posted April 29, 20223 yr I am trying to edit the Attributes of a Custom Class extending SwordItem. To do that I am Overriding the getAttributeModifiers Method like this: @Override public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlotType slot, ItemStack stack) { final Multimap<Attribute, AttributeModifier> attributes = super.getAttributeModifiers(slot, stack); if(slot == EquipmentSlotType.MAINHAND) { replaceModifier(attributes, Attributes.ATTACK_SPEED, EnmaItem.ATTACK_SPEED_MODIFIER, 2); } return attributes; } with Extracted Method replaceModifier: private void replaceModifier(Multimap<Attribute, AttributeModifier> attributes, Attribute attribute, UUID id, double multiplier) { final Collection<AttributeModifier> modifiers = attributes.get(attribute); AttributeModifier selectedModifier = null; for (AttributeModifier modifier: modifiers) { if(modifier.getID().equals(id)) { selectedModifier = modifier; break; } } if(selectedModifier != null) { modifiers.remove(selectedModifier); modifiers.add(new AttributeModifier( selectedModifier.getID(), selectedModifier.getName(), selectedModifier.getAmount() * multiplier, selectedModifier.getOperation())); } } But I get an UnsupportedOpterationException which means that the modifiers.remove() is not supported by my collection. I just don't know how I can try to edit the Attributes differntly. Edited April 29, 20223 yr by Boaphil Edited typo
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.