Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void updateItemAttributes(LivingEntity entity) {
- if (entity == null) return;
- EntityEquipment equipment = entity.getEquipment();
- if (equipment == null) return;
- for (EquipmentSlot slot : EquipmentSlot.values()) {
- // get item by slot:
- ItemStack item = null;
- switch (slot) {
- case HAND:
- item = equipment.getItemInMainHand();
- break;
- case OFF_HAND:
- item = equipment.getItemInOffHand();
- break;
- case FEET:
- item = equipment.getBoots();
- break;
- case LEGS:
- item = equipment.getLeggings();
- break;
- case CHEST:
- item = equipment.getChestplate();
- break;
- case HEAD:
- item = equipment.getHelmet();
- break;
- default:
- break;
- }
- if (item == null || !item.hasItemMeta()) continue;
- Multimap<Attribute, AttributeModifier> modifiers = item.getItemMeta().getAttributeModifiers(slot);
- if (modifiers == null) continue;
- for (Entry<Attribute, Collection<AttributeModifier>> entry : modifiers.asMap().entrySet()) {
- AttributeInstance attributeInstance = entity.getAttribute(entry.getKey());
- if (attributeInstance == null) continue;
- for (AttributeModifier modifier : entry.getValue()) {
- // duplicate modifiers are not allowed and there is no method to check if the modifier is
- // already applied, so: remove first, in case the modifier is already active:
- attributeInstance.removeModifier(modifier);
- attributeInstance.addModifier(modifier);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment