Guest User

Untitled

a guest
Nov 25th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1.     private static void updateItemAttributes(LivingEntity entity) {
  2.         if (entity == null) return;
  3.         EntityEquipment equipment = entity.getEquipment();
  4.         if (equipment == null) return;
  5.  
  6.         for (EquipmentSlot slot : EquipmentSlot.values()) {
  7.             // get item by slot:
  8.             ItemStack item = null;
  9.             switch (slot) {
  10.             case HAND:
  11.                 item = equipment.getItemInMainHand();
  12.                 break;
  13.             case OFF_HAND:
  14.                 item = equipment.getItemInOffHand();
  15.                 break;
  16.             case FEET:
  17.                 item = equipment.getBoots();
  18.                 break;
  19.             case LEGS:
  20.                 item = equipment.getLeggings();
  21.                 break;
  22.             case CHEST:
  23.                 item = equipment.getChestplate();
  24.                 break;
  25.             case HEAD:
  26.                 item = equipment.getHelmet();
  27.                 break;
  28.             default:
  29.                 break;
  30.             }
  31.             if (item == null || !item.hasItemMeta()) continue;
  32.  
  33.             Multimap<Attribute, AttributeModifier> modifiers = item.getItemMeta().getAttributeModifiers(slot);
  34.             if (modifiers == null) continue;
  35.             for (Entry<Attribute, Collection<AttributeModifier>> entry : modifiers.asMap().entrySet()) {
  36.                 AttributeInstance attributeInstance = entity.getAttribute(entry.getKey());
  37.                 if (attributeInstance == null) continue;
  38.                 for (AttributeModifier modifier : entry.getValue()) {
  39.                     // duplicate modifiers are not allowed and there is no method to check if the modifier is
  40.                     // already applied, so: remove first, in case the modifier is already active:
  41.                     attributeInstance.removeModifier(modifier);
  42.                     attributeInstance.addModifier(modifier);
  43.                 }
  44.             }
  45.         }
  46.     }
Add Comment
Please, Sign In to add comment