Advertisement
Guest User

Easy way to add modifiers to items

a guest
Mar 4th, 2024
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | Source Code | 0 0
  1. public class TestingProcedure {
  2.     @SubscribeEvent
  3.     public static void JBMEaddAttributeModifier(ItemAttributeModifierEvent event) {
  4.         ItemStack item = event.getItemStack();
  5.         Multimap<Attribute,AttributeModifier> multimap = event.getModifiers();
  6.         //Optional<AttributeModifier> ArmorOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR).stream().findFirst();                  
  7.         //Optional<AttributeModifier> ToughnessOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR_TOUGHNESS).stream().findFirst();  
  8.         //Optional<AttributeModifier> KnockOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE).stream().findFirst();     
  9.         Optional<AttributeModifier> VitalityOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).stream().findFirst();          
  10.         Optional<AttributeModifier> AgilityOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED).stream().findFirst();       
  11.         double VLVL = EnchantmentHelper.getItemEnchantmentLevel(JustABitMoreEnchantmentsModEnchantments.VITALITY.get(), item); //Getting the enchantment vitality level
  12.         double ALVL = EnchantmentHelper.getItemEnchantmentLevel(JustABitMoreEnchantmentsModEnchantments.AGILITY.get(), item);  //Getting the enchantment agility level
  13.         UUID Vid = UUID.fromString("14f1441b-fdb8-431b-9d78-dd413ef52ba5"); //Vitality UUID
  14.         UUID Aid = UUID.fromString("43424130-3913-425e-a7f2-3cc0c839d115"); //Agility UUID
  15.         if ((VLVL != 0) && (event.getSlotType() == EquipmentSlot.CHEST) ) {
  16.             if (VitalityOp.isPresent()){
  17.                 AttributeModifier VitalityModifier = null;
  18.                 Collection<AttributeModifier> modifiers = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH);
  19.                 for (AttributeModifier modifier : modifiers) {
  20.                     if (modifier.getId().equals(Vid)) {
  21.                         VitalityModifier = modifier;
  22.                         break; // Stop searching once we find the target modifier
  23.                     }
  24.                 }
  25.                 if (VitalityModifier != null) {
  26.                     event.removeModifier(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, VitalityModifier);
  27.                 }
  28.             } else {
  29.                 event.removeAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH);
  30.             }
  31.             event.addModifier(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, new AttributeModifier(Vid, "VITALITY", (float)(4 * VLVL), AttributeModifier.Operation.ADDITION));
  32.         }
  33.         if ((ALVL != 0) && (event.getSlotType() == EquipmentSlot.LEGS)) {
  34.             if (AgilityOp.isPresent()){
  35.                 AttributeModifier AgilityModifier = null;
  36.                 Collection<AttributeModifier> modifiers = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED);
  37.                 for (AttributeModifier modifier : modifiers) {
  38.                     if (modifier.getId().equals(Aid)) {
  39.                         AgilityModifier = modifier;
  40.                         break; // Stop searching once we find the target modifier
  41.                     }
  42.                 }
  43.                 if (AgilityModifier != null) {
  44.                     event.removeModifier(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED, AgilityModifier);
  45.                 }
  46.             } else {
  47.                 event.removeAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED);
  48.             }
  49.             event.addModifier(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED, new AttributeModifier(Aid, "AGILITY", (float)(0.01 * ALVL), AttributeModifier.Operation.ADDITION));
  50.         }
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement