Advertisement
Guest User

Buggy way to add an attribute modifier to an item

a guest
Feb 6th, 2024
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.29 KB | Source Code | 0 0
  1. package net.mcreator.jbme.procedures;
  2.  
  3. import net.minecraftforge.fml.common.Mod;
  4. import net.minecraftforge.eventbus.api.SubscribeEvent;
  5. import net.minecraftforge.eventbus.api.Event;
  6.  
  7. import net.minecraft.world.item.enchantment.EnchantmentHelper;
  8. import net.minecraft.world.entity.EquipmentSlot;
  9. import net.minecraft.world.entity.ai.attributes.Attribute;
  10. import net.minecraft.world.entity.ai.attributes.RangedAttribute;
  11. import net.minecraft.world.entity.ai.attributes.AttributeModifier;
  12. import net.minecraft.world.entity.ai.attributes.AttributeModifier.Operation;
  13. import net.minecraftforge.event.ItemAttributeModifierEvent;
  14. import net.minecraft.network.chat.Component;
  15. import net.minecraft.world.entity.LivingEntity;
  16. import net.minecraft.world.entity.Entity;
  17. import net.mcreator.jbme.init.JustABitMoreEnchantmentsModEnchantments;
  18. import net.mcreator.jbme.JustABitMoreEnchantmentsMod;
  19.  
  20. import net.minecraft.world.item.ItemStack;
  21. import javax.annotation.Nullable;
  22. import com.google.common.collect.Multimap;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.Collection;
  26. import java.util.UUID;
  27. import java.util.Optional;
  28. import java.lang.String;
  29.  
  30. @Mod.EventBusSubscriber
  31. public class TestingProcedure {
  32.     @SubscribeEvent
  33.     public static void JBMEaddAttributeModifier(ItemAttributeModifierEvent event) {
  34.         ItemStack item = event.getItemStack();
  35.         Multimap<Attribute,AttributeModifier> multimap = event.getModifiers();
  36.         Optional<AttributeModifier> ArmorOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR).stream().findFirst();                   //This will cause issues in some mods XD
  37.         Optional<AttributeModifier> ToughnessOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR_TOUGHNESS).stream().findFirst();     //
  38.         Optional<AttributeModifier> KnockOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE).stream().findFirst();    //
  39.         Optional<AttributeModifier> VitalityOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).stream().findFirst();           //
  40.         Optional<AttributeModifier> AgilityOp = multimap.get(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED).stream().findFirst();        //
  41.         double VLVL = EnchantmentHelper.getItemEnchantmentLevel(JustABitMoreEnchantmentsModEnchantments.VITALITY.get(), item); //Getting the enchantment vitality level
  42.         double ALVL = EnchantmentHelper.getItemEnchantmentLevel(JustABitMoreEnchantmentsModEnchantments.AGILITY.get(), item);  //Getting the enchantment agility level
  43.         double amount = 0;
  44.         String name = "";
  45.         UUID Vid = UUID.fromString("14f1441b-fdb8-431b-9d78-dd413ef52ba5"); //Vitality UUID
  46.         UUID Aid = UUID.fromString("43424130-3913-425e-a7f2-3cc0c839d115"); //Agility UUID
  47.         if ((!VitalityOp.isPresent()) && (VLVL != 0) && (event.getSlotType() == EquipmentSlot.CHEST)) {
  48.             //event.addModifier(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, (new AttributeModifier(Vid, "VITALITY", (float)(4 * LVL), AttributeModifier.Operation.ADDITION)));
  49.             event.clearModifiers();
  50.             if (ArmorOp.isPresent()) {
  51.                 AttributeModifier ArmorModifier = ArmorOp.get();
  52.                 amount = ArmorModifier.getAmount();
  53.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR, new AttributeModifier(UUID.fromString("2cdedcd4-8680-4ccc-ac73-77d90faa56a1"), "ARMORDEFAULT", (float)amount, AttributeModifier.Operation.ADDITION), event.getSlotType());
  54.             }
  55.             if (ToughnessOp.isPresent()) {
  56.                 AttributeModifier ToughnessModifier = ToughnessOp.get();
  57.                 amount = ToughnessModifier.getAmount();
  58.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR_TOUGHNESS, new AttributeModifier(UUID.fromString("31b2f268-3a78-48c3-bf58-02bbad9c60d3"), "TOUGHNESSDEFAULT", (float)amount, AttributeModifier.Operation.ADDITION), event.getSlotType());
  59.             }
  60.             if (KnockOp.isPresent()) {
  61.                 AttributeModifier KnockModifier = KnockOp.get();
  62.                 amount = KnockModifier.getAmount();
  63.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE, new AttributeModifier(UUID.fromString("f899afe7-3608-499d-8839-8f3af7b839b7"), "KNOCKDEFAULT", (float)amount, AttributeModifier.Operation.ADDITION), event.getSlotType());
  64.             }
  65.             (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, (new AttributeModifier(Vid, "VITALITY", (float)(4 * VLVL), AttributeModifier.Operation.ADDITION)), EquipmentSlot.CHEST);
  66.         } else if ((VitalityOp.isPresent()) && (VLVL ==0) && (event.getSlotType() == EquipmentSlot.CHEST)) {
  67.             item.removeTagKey("AttributeModifiers");
  68.             if (ArmorOp.isPresent()) {
  69.                 AttributeModifier ArmorModifier = ArmorOp.get();
  70.                 amount = ArmorModifier.getAmount();
  71.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR, ArmorModifier, event.getSlotType());
  72.             }
  73.             if (ToughnessOp.isPresent()) {
  74.                 AttributeModifier ToughnessModifier = ToughnessOp.get();
  75.                 amount = ToughnessModifier.getAmount();
  76.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR_TOUGHNESS, ToughnessModifier, event.getSlotType());
  77.             }
  78.             if (KnockOp.isPresent()) {
  79.                 AttributeModifier KnockModifier = KnockOp.get();
  80.                 amount = KnockModifier.getAmount();
  81.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE, KnockModifier, event.getSlotType());
  82.             }
  83.         }
  84.         if ((!AgilityOp.isPresent()) && (ALVL != 0) && (event.getSlotType() == EquipmentSlot.LEGS)) {
  85.             //event.addModifier(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, (new AttributeModifier(Vid, "VITALITY", (float)(4 * LVL), AttributeModifier.Operation.ADDITION)));
  86.             event.clearModifiers();
  87.             if (ArmorOp.isPresent()) {
  88.                 AttributeModifier ArmorModifier = ArmorOp.get();
  89.                 amount = ArmorModifier.getAmount();
  90.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR, new AttributeModifier(UUID.fromString("2cdedcd4-8680-4ccc-ac73-77d90faa56a1"), "ARMORDEFAULT", (float)amount, AttributeModifier.Operation.ADDITION), event.getSlotType());
  91.             }
  92.             if (ToughnessOp.isPresent()) {
  93.                 AttributeModifier ToughnessModifier = ToughnessOp.get();
  94.                 amount = ToughnessModifier.getAmount();
  95.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR_TOUGHNESS, new AttributeModifier(UUID.fromString("31b2f268-3a78-48c3-bf58-02bbad9c60d3"), "TOUGHNESSDEFAULT", (float)amount, AttributeModifier.Operation.ADDITION), event.getSlotType());
  96.             }
  97.             if (KnockOp.isPresent()) {
  98.                 AttributeModifier KnockModifier = KnockOp.get();
  99.                 amount = KnockModifier.getAmount();
  100.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE, new AttributeModifier(UUID.fromString("f899afe7-3608-499d-8839-8f3af7b839b7"), "KNOCKDEFAULT", (float)amount, AttributeModifier.Operation.ADDITION), event.getSlotType());
  101.             }
  102.             (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED, (new AttributeModifier(Vid, "AGILITY", (float)(0.01 * ALVL), AttributeModifier.Operation.ADDITION)), EquipmentSlot.LEGS);
  103.         } else if ((AgilityOp.isPresent()) && (ALVL ==0) && (event.getSlotType() == EquipmentSlot.LEGS)) {
  104.             item.removeTagKey("AttributeModifiers");
  105.             if (ArmorOp.isPresent()) {
  106.                 AttributeModifier ArmorModifier = ArmorOp.get();
  107.                 amount = ArmorModifier.getAmount();
  108.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR, ArmorModifier, event.getSlotType());
  109.             }
  110.             if (ToughnessOp.isPresent()) {
  111.                 AttributeModifier ToughnessModifier = ToughnessOp.get();
  112.                 amount = ToughnessModifier.getAmount();
  113.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.ARMOR_TOUGHNESS, ToughnessModifier, event.getSlotType());
  114.             }
  115.             if (KnockOp.isPresent()) {
  116.                 AttributeModifier KnockModifier = KnockOp.get();
  117.                 amount = KnockModifier.getAmount();
  118.                 (item).addAttributeModifier(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE, KnockModifier, event.getSlotType());
  119.             }
  120.         }
  121.     }
  122. }
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement