Compiled from "SACombatForgeEvents.java"
public final class com.ogaba.sa_combat.event.SACombatForgeEvents {
  private static final java.util.UUID EXTERNAL_UPGRADE_DAMAGE_UUID;

  private static final java.util.UUID EXTERNAL_UPGRADE_SPEED_UUID;

  private static final java.util.UUID EXTERNAL_UPGRADE_KNOCKBACK_UUID;

  private static final java.util.UUID EXTERNAL_UPGRADE_REACH_UUID;

  private static final java.util.UUID TACZ_VEST_BULLET_RESISTANCE_UUID;

  private static final net.minecraft.resources.ResourceLocation TACZ_BULLET_RESISTANCE_ID;

  private static boolean proccingExternalAbility;

  private static boolean proccingShieldThorns;

  private static final int ICE_AXE_CLIMB_SOUND_INTERVAL_TICKS;

  private com.ogaba.sa_combat.event.SACombatForgeEvents();
    Code:
       0: aload_0
       1: invokespecial #92                 // Method java/lang/Object."<init>":()V
       4: return

  public static void addTaczVestBulletResistance(net.minecraftforge.event.ItemAttributeModifierEvent);
    Code:
       0: aload_0
       1: invokevirtual #103                // Method net/minecraftforge/event/ItemAttributeModifierEvent.getSlotType:()Lnet/minecraft/world/entity/EquipmentSlot;
       4: getstatic     #109                // Field net/minecraft/world/entity/EquipmentSlot.CHEST:Lnet/minecraft/world/entity/EquipmentSlot;
       7: if_acmpne     33
      10: aload_0
      11: invokevirtual #113                // Method net/minecraftforge/event/ItemAttributeModifierEvent.getItemStack:()Lnet/minecraft/world/item/ItemStack;
      14: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      17: astore_2
      18: aload_2
      19: instanceof    #121                // class com/ogaba/sa_combat/item/TacticalVestItem
      22: ifeq          33
      25: aload_2
      26: checkcast     #121                // class com/ogaba/sa_combat/item/TacticalVestItem
      29: astore_1
      30: goto          34
      33: return
      34: getstatic     #127                // Field net/minecraftforge/registries/ForgeRegistries.ATTRIBUTES:Lnet/minecraftforge/registries/IForgeRegistry;
      37: getstatic     #129                // Field TACZ_BULLET_RESISTANCE_ID:Lnet/minecraft/resources/ResourceLocation;
      40: invokeinterface #135,  2          // InterfaceMethod net/minecraftforge/registries/IForgeRegistry.getValue:(Lnet/minecraft/resources/ResourceLocation;)Ljava/lang/Object;
      45: checkcast     #137                // class net/minecraft/world/entity/ai/attributes/Attribute
      48: astore_2
      49: aload_2
      50: ifnull        62
      53: aload_1
      54: invokevirtual #141                // Method com/ogaba/sa_combat/item/TacticalVestItem.getTaczBulletResistance:()D
      57: dconst_0
      58: dcmpg
      59: ifgt          63
      62: return
      63: aload_0
      64: aload_2
      65: new           #17                 // class net/minecraft/world/entity/ai/attributes/AttributeModifier
      68: dup
      69: getstatic     #143                // Field TACZ_VEST_BULLET_RESISTANCE_UUID:Ljava/util/UUID;
      72: ldc           #145                // String SA Combat TACZ vest bullet resistance
      74: aload_1
      75: invokevirtual #141                // Method com/ogaba/sa_combat/item/TacticalVestItem.getTaczBulletResistance:()D
      78: getstatic     #149                // Field net/minecraft/world/entity/ai/attributes/AttributeModifier$Operation.ADDITION:Lnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;
      81: invokespecial #152                // Method net/minecraft/world/entity/ai/attributes/AttributeModifier."<init>":(Ljava/util/UUID;Ljava/lang/String;DLnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;)V
      84: invokevirtual #156                // Method net/minecraftforge/event/ItemAttributeModifierEvent.addModifier:(Lnet/minecraft/world/entity/ai/attributes/Attribute;Lnet/minecraft/world/entity/ai/attributes/AttributeModifier;)Z
      87: pop
      88: return

  public static void triggerC4ByNearbyExplosion(net.minecraftforge.event.level.ExplosionEvent$Detonate);
    Code:
       0: aload_0
       1: invokevirtual #168                // Method net/minecraftforge/event/level/ExplosionEvent$Detonate.getLevel:()Lnet/minecraft/world/level/Level;
       4: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
       7: ifeq          11
      10: return
      11: new           #176                // class it/unimi/dsi/fastutil/longs/LongOpenHashSet
      14: dup
      15: invokespecial #177                // Method it/unimi/dsi/fastutil/longs/LongOpenHashSet."<init>":()V
      18: astore_1
      19: new           #176                // class it/unimi/dsi/fastutil/longs/LongOpenHashSet
      22: dup
      23: invokespecial #177                // Method it/unimi/dsi/fastutil/longs/LongOpenHashSet."<init>":()V
      26: astore_2
      27: aload_0
      28: invokevirtual #181                // Method net/minecraftforge/event/level/ExplosionEvent$Detonate.getAffectedBlocks:()Ljava/util/List;
      31: invokeinterface #187,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      36: astore_3
      37: aload_3
      38: invokeinterface #192,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      43: ifeq          199
      46: aload_3
      47: invokeinterface #196,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      52: checkcast     #198                // class net/minecraft/core/BlockPos
      55: astore        4
      57: aload         4
      59: invokevirtual #202                // Method net/minecraft/core/BlockPos.m_123341_:()I
      62: istore        5
      64: aload         4
      66: invokevirtual #205                // Method net/minecraft/core/BlockPos.m_123342_:()I
      69: istore        6
      71: aload         4
      73: invokevirtual #208                // Method net/minecraft/core/BlockPos.m_123343_:()I
      76: istore        7
      78: bipush        -3
      80: istore        8
      82: iload         8
      84: iconst_3
      85: if_icmpgt     196
      88: bipush        -3
      90: istore        9
      92: iload         9
      94: iconst_3
      95: if_icmpgt     190
      98: bipush        -3
     100: istore        10
     102: iload         10
     104: iconst_3
     105: if_icmpgt     184
     108: iload         5
     110: iload         8
     112: iadd
     113: iload         6
     115: iload         9
     117: iadd
     118: iload         7
     120: iload         10
     122: iadd
     123: invokestatic  #212                // Method net/minecraft/core/BlockPos.m_121882_:(III)J
     126: lstore        11
     128: aload_1
     129: lload         11
     131: invokevirtual #216                // Method it/unimi/dsi/fastutil/longs/LongOpenHashSet.add:(J)Z
     134: ifne          140
     137: goto          178
     140: lload         11
     142: invokestatic  #220                // Method net/minecraft/core/BlockPos.m_122022_:(J)Lnet/minecraft/core/BlockPos;
     145: astore        13
     147: aload_0
     148: invokevirtual #168                // Method net/minecraftforge/event/level/ExplosionEvent$Detonate.getLevel:()Lnet/minecraft/world/level/Level;
     151: aload         13
     153: invokevirtual #224                // Method net/minecraft/world/level/Level.m_8055_:(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState;
     156: getstatic     #230                // Field com/ogaba/sa_combat/registry/ModBlocks.C4:Lnet/minecraftforge/registries/RegistryObject;
     159: invokevirtual #235                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
     162: checkcast     #237                // class net/minecraft/world/level/block/Block
     165: invokevirtual #243                // Method net/minecraft/world/level/block/state/BlockState.m_60713_:(Lnet/minecraft/world/level/block/Block;)Z
     168: ifeq          178
     171: aload_2
     172: lload         11
     174: invokevirtual #216                // Method it/unimi/dsi/fastutil/longs/LongOpenHashSet.add:(J)Z
     177: pop
     178: iinc          10, 1
     181: goto          102
     184: iinc          9, 1
     187: goto          92
     190: iinc          8, 1
     193: goto          82
     196: goto          37
     199: aload_2
     200: invokevirtual #246                // Method it/unimi/dsi/fastutil/longs/LongOpenHashSet.iterator:()Lit/unimi/dsi/fastutil/longs/LongIterator;
     203: astore_3
     204: aload_3
     205: invokeinterface #192,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     210: ifeq          243
     213: aload_3
     214: invokeinterface #196,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     219: checkcast     #248                // class java/lang/Long
     222: invokevirtual #252                // Method java/lang/Long.longValue:()J
     225: lstore        4
     227: aload_0
     228: invokevirtual #168                // Method net/minecraftforge/event/level/ExplosionEvent$Detonate.getLevel:()Lnet/minecraft/world/level/Level;
     231: lload         4
     233: invokestatic  #220                // Method net/minecraft/core/BlockPos.m_122022_:(J)Lnet/minecraft/core/BlockPos;
     236: aconst_null
     237: invokestatic  #258                // Method com/ogaba/sa_combat/block/C4Block.explode:(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/Entity;)V
     240: goto          204
     243: return

  public static void addExternalWeaponUpgradeAttributes(net.minecraftforge.event.ItemAttributeModifierEvent);
    Code:
       0: aload_0
       1: invokevirtual #113                // Method net/minecraftforge/event/ItemAttributeModifierEvent.getItemStack:()Lnet/minecraft/world/item/ItemStack;
       4: astore_1
       5: aload_1
       6: invokevirtual #277                // Method net/minecraft/world/item/ItemStack.m_41619_:()Z
       9: ifne          22
      12: aload_0
      13: invokevirtual #103                // Method net/minecraftforge/event/ItemAttributeModifierEvent.getSlotType:()Lnet/minecraft/world/entity/EquipmentSlot;
      16: getstatic     #280                // Field net/minecraft/world/entity/EquipmentSlot.MAINHAND:Lnet/minecraft/world/entity/EquipmentSlot;
      19: if_acmpeq     23
      22: return
      23: aload_1
      24: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      27: instanceof    #282                // class com/ogaba/sa_combat/combat/weapon/BaseMeleeWeapon
      30: ifeq          34
      33: return
      34: aload_1
      35: invokestatic  #286                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getDamageBonus:(Lnet/minecraft/world/item/ItemStack;)D
      38: aload_1
      39: invokestatic  #289                // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachmentData.getDamageBonus:(Lnet/minecraft/world/item/ItemStack;)D
      42: dadd
      43: dstore_2
      44: dload_2
      45: dconst_0
      46: dcmpl
      47: ifeq          75
      50: aload_0
      51: getstatic     #294                // Field net/minecraft/world/entity/ai/attributes/Attributes.f_22281_:Lnet/minecraft/world/entity/ai/attributes/Attribute;
      54: new           #17                 // class net/minecraft/world/entity/ai/attributes/AttributeModifier
      57: dup
      58: getstatic     #296                // Field EXTERNAL_UPGRADE_DAMAGE_UUID:Ljava/util/UUID;
      61: ldc_w         #298                // String SA Combat weapon upgrade damage
      64: dload_2
      65: getstatic     #149                // Field net/minecraft/world/entity/ai/attributes/AttributeModifier$Operation.ADDITION:Lnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;
      68: invokespecial #152                // Method net/minecraft/world/entity/ai/attributes/AttributeModifier."<init>":(Ljava/util/UUID;Ljava/lang/String;DLnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;)V
      71: invokevirtual #156                // Method net/minecraftforge/event/ItemAttributeModifierEvent.addModifier:(Lnet/minecraft/world/entity/ai/attributes/Attribute;Lnet/minecraft/world/entity/ai/attributes/AttributeModifier;)Z
      74: pop
      75: aload_1
      76: invokestatic  #301                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getSpeedBonus:(Lnet/minecraft/world/item/ItemStack;)D
      79: aload_1
      80: invokestatic  #302                // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachmentData.getSpeedBonus:(Lnet/minecraft/world/item/ItemStack;)D
      83: dadd
      84: dstore        4
      86: dload         4
      88: dconst_0
      89: dcmpl
      90: ifeq          119
      93: aload_0
      94: getstatic     #305                // Field net/minecraft/world/entity/ai/attributes/Attributes.f_22283_:Lnet/minecraft/world/entity/ai/attributes/Attribute;
      97: new           #17                 // class net/minecraft/world/entity/ai/attributes/AttributeModifier
     100: dup
     101: getstatic     #307                // Field EXTERNAL_UPGRADE_SPEED_UUID:Ljava/util/UUID;
     104: ldc_w         #309                // String SA Combat weapon upgrade speed
     107: dload         4
     109: getstatic     #149                // Field net/minecraft/world/entity/ai/attributes/AttributeModifier$Operation.ADDITION:Lnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;
     112: invokespecial #152                // Method net/minecraft/world/entity/ai/attributes/AttributeModifier."<init>":(Ljava/util/UUID;Ljava/lang/String;DLnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;)V
     115: invokevirtual #156                // Method net/minecraftforge/event/ItemAttributeModifierEvent.addModifier:(Lnet/minecraft/world/entity/ai/attributes/Attribute;Lnet/minecraft/world/entity/ai/attributes/AttributeModifier;)Z
     118: pop
     119: aload_1
     120: invokestatic  #312                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getKnockbackBonus:(Lnet/minecraft/world/item/ItemStack;)D
     123: aload_1
     124: invokestatic  #313                // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachmentData.getKnockbackBonus:(Lnet/minecraft/world/item/ItemStack;)D
     127: dadd
     128: dstore        6
     130: dload         6
     132: dconst_0
     133: dcmpl
     134: ifeq          163
     137: aload_0
     138: getstatic     #316                // Field net/minecraft/world/entity/ai/attributes/Attributes.f_22282_:Lnet/minecraft/world/entity/ai/attributes/Attribute;
     141: new           #17                 // class net/minecraft/world/entity/ai/attributes/AttributeModifier
     144: dup
     145: getstatic     #318                // Field EXTERNAL_UPGRADE_KNOCKBACK_UUID:Ljava/util/UUID;
     148: ldc_w         #320                // String SA Combat weapon upgrade knockback
     151: dload         6
     153: getstatic     #149                // Field net/minecraft/world/entity/ai/attributes/AttributeModifier$Operation.ADDITION:Lnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;
     156: invokespecial #152                // Method net/minecraft/world/entity/ai/attributes/AttributeModifier."<init>":(Ljava/util/UUID;Ljava/lang/String;DLnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;)V
     159: invokevirtual #156                // Method net/minecraftforge/event/ItemAttributeModifierEvent.addModifier:(Lnet/minecraft/world/entity/ai/attributes/Attribute;Lnet/minecraft/world/entity/ai/attributes/AttributeModifier;)Z
     162: pop
     163: aload_1
     164: invokestatic  #323                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getReachBonus:(Lnet/minecraft/world/item/ItemStack;)D
     167: aload_1
     168: invokestatic  #324                // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachmentData.getReachBonus:(Lnet/minecraft/world/item/ItemStack;)D
     171: dadd
     172: dstore        8
     174: dload         8
     176: dconst_0
     177: dcmpl
     178: ifeq          213
     181: aload_0
     182: getstatic     #329                // Field net/minecraftforge/common/ForgeMod.ENTITY_REACH:Lnet/minecraftforge/registries/RegistryObject;
     185: invokevirtual #235                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
     188: checkcast     #137                // class net/minecraft/world/entity/ai/attributes/Attribute
     191: new           #17                 // class net/minecraft/world/entity/ai/attributes/AttributeModifier
     194: dup
     195: getstatic     #331                // Field EXTERNAL_UPGRADE_REACH_UUID:Ljava/util/UUID;
     198: ldc_w         #333                // String SA Combat weapon upgrade reach
     201: dload         8
     203: getstatic     #149                // Field net/minecraft/world/entity/ai/attributes/AttributeModifier$Operation.ADDITION:Lnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;
     206: invokespecial #152                // Method net/minecraft/world/entity/ai/attributes/AttributeModifier."<init>":(Ljava/util/UUID;Ljava/lang/String;DLnet/minecraft/world/entity/ai/attributes/AttributeModifier$Operation;)V
     209: invokevirtual #156                // Method net/minecraftforge/event/ItemAttributeModifierEvent.addModifier:(Lnet/minecraft/world/entity/ai/attributes/Attribute;Lnet/minecraft/world/entity/ai/attributes/AttributeModifier;)Z
     212: pop
     213: return

  public static void applyWeaponCriticalUpgrade(net.minecraftforge.event.entity.living.LivingHurtEvent);
    Code:
       0: aload_0
       1: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
       4: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
       7: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      10: ifeq          14
      13: return
      14: aload_0
      15: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      18: invokevirtual #363                // Method net/minecraft/world/damagesource/DamageSource.m_7639_:()Lnet/minecraft/world/entity/Entity;
      21: astore_2
      22: aload_2
      23: instanceof    #350                // class net/minecraft/world/entity/LivingEntity
      26: ifeq          37
      29: aload_2
      30: checkcast     #350                // class net/minecraft/world/entity/LivingEntity
      33: astore_1
      34: goto          38
      37: return
      38: aload_0
      39: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      42: invokevirtual #366                // Method net/minecraft/world/damagesource/DamageSource.m_7640_:()Lnet/minecraft/world/entity/Entity;
      45: aload_1
      46: if_acmpeq     50
      49: return
      50: aload_1
      51: invokevirtual #369                // Method net/minecraft/world/entity/LivingEntity.m_21205_:()Lnet/minecraft/world/item/ItemStack;
      54: astore_2
      55: aload_2
      56: invokevirtual #277                // Method net/minecraft/world/item/ItemStack.m_41619_:()Z
      59: ifne          69
      62: aload_2
      63: invokestatic  #375                // Method com/ogaba/sa_combat/combat/weapon/WeaponSlotProfile.isUpgradeableWeapon:(Lnet/minecraft/world/item/ItemStack;)Z
      66: ifne          70
      69: return
      70: dconst_0
      71: aload_2
      72: invokestatic  #378                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getCriticalChanceBonus:(Lnet/minecraft/world/item/ItemStack;)D
      75: invokestatic  #384                // Method java/lang/Math.max:(DD)D
      78: dstore_3
      79: dload_3
      80: dconst_0
      81: dcmpg
      82: ifgt          86
      85: return
      86: ldc2_w        #385                // double 0.95d
      89: dload_3
      90: invokestatic  #389                // Method java/lang/Math.min:(DD)D
      93: dstore_3
      94: aload_1
      95: invokevirtual #393                // Method net/minecraft/world/entity/LivingEntity.m_217043_:()Lnet/minecraft/util/RandomSource;
      98: invokeinterface #398,  1          // InterfaceMethod net/minecraft/util/RandomSource.m_188500_:()D
     103: dload_3
     104: dcmpl
     105: iflt          109
     108: return
     109: dconst_0
     110: aload_2
     111: invokestatic  #401                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getCriticalDamageBonus:(Lnet/minecraft/world/item/ItemStack;)D
     114: invokestatic  #384                // Method java/lang/Math.max:(DD)D
     117: dstore        5
     119: dload         5
     121: dconst_0
     122: dcmpg
     123: ifgt          131
     126: ldc2_w        #402                // double 0.25d
     129: dstore        5
     131: aload_0
     132: aload_0
     133: invokevirtual #407                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getAmount:()F
     136: f2d
     137: dconst_1
     138: dload         5
     140: dadd
     141: dmul
     142: d2f
     143: invokevirtual #411                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.setAmount:(F)V
     146: aload_1
     147: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
     150: aconst_null
     151: aload_1
     152: invokevirtual #414                // Method net/minecraft/world/entity/LivingEntity.m_20185_:()D
     155: aload_1
     156: invokevirtual #417                // Method net/minecraft/world/entity/LivingEntity.m_20186_:()D
     159: aload_1
     160: invokevirtual #420                // Method net/minecraft/world/entity/LivingEntity.m_20189_:()D
     163: getstatic     #426                // Field net/minecraft/sounds/SoundEvents.f_12313_:Lnet/minecraft/sounds/SoundEvent;
     166: getstatic     #432                // Field net/minecraft/sounds/SoundSource.PLAYERS:Lnet/minecraft/sounds/SoundSource;
     169: ldc_w         #433                // float 0.75f
     172: ldc_w         #434                // float 1.15f
     175: invokevirtual #438                // Method net/minecraft/world/level/Level.m_6263_:(Lnet/minecraft/world/entity/player/Player;DDDLnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V
     178: return

  public static void procExternalWeaponAbilities(net.minecraftforge.event.entity.living.LivingHurtEvent);
    Code:
       0: getstatic     #446                // Field proccingExternalAbility:Z
       3: ifne          19
       6: aload_0
       7: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      10: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
      13: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      16: ifeq          20
      19: return
      20: aload_0
      21: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      24: invokevirtual #363                // Method net/minecraft/world/damagesource/DamageSource.m_7639_:()Lnet/minecraft/world/entity/Entity;
      27: astore_2
      28: aload_2
      29: instanceof    #350                // class net/minecraft/world/entity/LivingEntity
      32: ifeq          43
      35: aload_2
      36: checkcast     #350                // class net/minecraft/world/entity/LivingEntity
      39: astore_1
      40: goto          44
      43: return
      44: aload_0
      45: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      48: invokevirtual #366                // Method net/minecraft/world/damagesource/DamageSource.m_7640_:()Lnet/minecraft/world/entity/Entity;
      51: aload_1
      52: if_acmpeq     56
      55: return
      56: aload_1
      57: invokevirtual #369                // Method net/minecraft/world/entity/LivingEntity.m_21205_:()Lnet/minecraft/world/item/ItemStack;
      60: astore_2
      61: aload_2
      62: invokevirtual #277                // Method net/minecraft/world/item/ItemStack.m_41619_:()Z
      65: ifne          85
      68: aload_2
      69: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      72: instanceof    #282                // class com/ogaba/sa_combat/combat/weapon/BaseMeleeWeapon
      75: ifne          85
      78: aload_2
      79: invokestatic  #375                // Method com/ogaba/sa_combat/combat/weapon/WeaponSlotProfile.isUpgradeableWeapon:(Lnet/minecraft/world/item/ItemStack;)Z
      82: ifne          86
      85: return
      86: new           #448                // class java/util/ArrayList
      89: dup
      90: aload_2
      91: invokestatic  #452                // Method com/ogaba/sa_combat/combat/weapon/WeaponSlotProfile.baseAbilities:(Lnet/minecraft/world/item/ItemStack;)Ljava/util/List;
      94: invokespecial #455                // Method java/util/ArrayList."<init>":(Ljava/util/Collection;)V
      97: astore_3
      98: aload_2
      99: invokestatic  #458                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getAbilityUpgrades:(Lnet/minecraft/world/item/ItemStack;)Ljava/util/List;
     102: invokeinterface #187,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     107: astore        4
     109: aload         4
     111: invokeinterface #192,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     116: ifeq          179
     119: aload         4
     121: invokeinterface #196,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     126: checkcast     #25                 // class com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData$Entry
     129: astore        5
     131: aload         5
     133: invokevirtual #462                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData$Entry.upgrade:()Ljava/util/Optional;
     136: invokedynamic #481,  0            // InvokeDynamic #0:test:()Ljava/util/function/Predicate;
     141: invokevirtual #487                // Method java/util/Optional.filter:(Ljava/util/function/Predicate;)Ljava/util/Optional;
     144: aload         5
     146: invokedynamic #500,  0            // InvokeDynamic #1:apply:(Lcom/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData$Entry;)Ljava/util/function/Function;
     151: invokevirtual #504                // Method java/util/Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
     154: invokedynamic #511,  0            // InvokeDynamic #2:test:()Ljava/util/function/Predicate;
     159: invokevirtual #487                // Method java/util/Optional.filter:(Ljava/util/function/Predicate;)Ljava/util/Optional;
     162: aload_3
     163: dup
     164: invokestatic  #516                // Method java/util/Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
     167: pop
     168: invokedynamic #527,  0            // InvokeDynamic #3:accept:(Ljava/util/List;)Ljava/util/function/Consumer;
     173: invokevirtual #531                // Method java/util/Optional.ifPresent:(Ljava/util/function/Consumer;)V
     176: goto          109
     179: aload_2
     180: invokestatic  #535                // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachmentData.installedAttachments:(Lnet/minecraft/world/item/ItemStack;)Ljava/util/Map;
     183: astore        4
     185: aload         4
     187: invokeinterface #541,  1          // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;
     192: aload_3
     193: aload_0
     194: aload_1
     195: invokedynamic #551,  0            // InvokeDynamic #4:accept:(Ljava/util/List;Lnet/minecraftforge/event/entity/living/LivingHurtEvent;Lnet/minecraft/world/entity/LivingEntity;)Ljava/util/function/Consumer;
     200: invokeinterface #556,  2          // InterfaceMethod java/util/Collection.forEach:(Ljava/util/function/Consumer;)V
     205: aload         4
     207: invokeinterface #559,  1          // InterfaceMethod java/util/Map.isEmpty:()Z
     212: ifeq          230
     215: aload_2
     216: invokestatic  #563                // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData.getModifier:(Lnet/minecraft/world/item/ItemStack;)Ljava/util/Optional;
     219: aload_3
     220: aload_0
     221: aload_1
     222: invokedynamic #571,  0            // InvokeDynamic #5:accept:(Ljava/util/List;Lnet/minecraftforge/event/entity/living/LivingHurtEvent;Lnet/minecraft/world/entity/LivingEntity;)Ljava/util/function/Consumer;
     227: invokevirtual #531                // Method java/util/Optional.ifPresent:(Ljava/util/function/Consumer;)V
     230: aload_3
     231: invokestatic  #577                // Method com/ogaba/sa_combat/combat/system/AbilityInstance.mergeByType:(Ljava/util/List;)Ljava/util/List;
     234: invokeinterface #581,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
     239: invokedynamic #591,  0            // InvokeDynamic #6:apply:()Ljava/util/function/Function;
     244: invokeinterface #596,  2          // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
     249: invokeinterface #599,  1          // InterfaceMethod java/util/stream/Stream.toList:()Ljava/util/List;
     254: astore        5
     256: aload         5
     258: invokeinterface #600,  1          // InterfaceMethod java/util/List.isEmpty:()Z
     263: ifeq          267
     266: return
     267: iconst_1
     268: putstatic     #446                // Field proccingExternalAbility:Z
     271: getstatic     #604                // Field com/ogaba/sa_combat/event/SACombatForgeEvents$1.$SwitchMap$com$ogaba$sa_combat$combat$weapon$WeaponProcMode:[I
     274: aload_2
     275: invokestatic  #608                // Method com/ogaba/sa_combat/combat/weapon/WeaponSlotProfile.procMode:(Lnet/minecraft/world/item/ItemStack;)Lcom/ogaba/sa_combat/combat/weapon/WeaponProcMode;
     278: invokevirtual #613                // Method com/ogaba/sa_combat/combat/weapon/WeaponProcMode.ordinal:()I
     281: iaload
     282: tableswitch   { // 1 to 3

                     1: 308

                     2: 356

                     3: 394
               default: 444
          }
     308: aload         5
     310: invokeinterface #187,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     315: astore        6
     317: aload         6
     319: invokeinterface #192,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     324: ifeq          353
     327: aload         6
     329: invokeinterface #196,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     334: checkcast     #615                // class com/ogaba/sa_combat/combat/system/WeaponAbility
     337: astore        7
     339: aload         7
     341: aload_0
     342: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
     345: aload_1
     346: invokevirtual #619                // Method com/ogaba/sa_combat/combat/system/WeaponAbility.tryProc:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;)Z
     349: pop
     350: goto          317
     353: goto          444
     356: aload         5
     358: aload_1
     359: invokevirtual #393                // Method net/minecraft/world/entity/LivingEntity.m_217043_:()Lnet/minecraft/util/RandomSource;
     362: aload         5
     364: invokeinterface #622,  1          // InterfaceMethod java/util/List.size:()I
     369: invokeinterface #626,  2          // InterfaceMethod net/minecraft/util/RandomSource.m_188503_:(I)I
     374: invokeinterface #629,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     379: checkcast     #615                // class com/ogaba/sa_combat/combat/system/WeaponAbility
     382: aload_0
     383: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
     386: aload_1
     387: invokevirtual #619                // Method com/ogaba/sa_combat/combat/system/WeaponAbility.tryProc:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;)Z
     390: pop
     391: goto          444
     394: aload         5
     396: invokeinterface #187,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     401: astore        6
     403: aload         6
     405: invokeinterface #192,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     410: ifeq          444
     413: aload         6
     415: invokeinterface #196,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     420: checkcast     #615                // class com/ogaba/sa_combat/combat/system/WeaponAbility
     423: astore        7
     425: aload         7
     427: aload_0
     428: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
     431: aload_1
     432: invokevirtual #619                // Method com/ogaba/sa_combat/combat/system/WeaponAbility.tryProc:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;)Z
     435: ifeq          441
     438: goto          444
     441: goto          403
     444: iconst_0
     445: putstatic     #446                // Field proccingExternalAbility:Z
     448: goto          460
     451: astore        8
     453: iconst_0
     454: putstatic     #446                // Field proccingExternalAbility:Z
     457: aload         8
     459: athrow
     460: return
    Exception table:
       from    to  target type
         271   444   451   any
         451   453   451   any

  public static void cancelShieldMeleeDamage(net.minecraftforge.event.entity.living.LivingHurtEvent);
    Code:
       0: getstatic     #645                // Field proccingShieldThorns:Z
       3: ifne          19
       6: aload_0
       7: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      10: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
      13: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      16: ifeq          20
      19: return
      20: aload_0
      21: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      24: invokevirtual #363                // Method net/minecraft/world/damagesource/DamageSource.m_7639_:()Lnet/minecraft/world/entity/Entity;
      27: astore_2
      28: aload_2
      29: instanceof    #350                // class net/minecraft/world/entity/LivingEntity
      32: ifeq          43
      35: aload_2
      36: checkcast     #350                // class net/minecraft/world/entity/LivingEntity
      39: astore_1
      40: goto          44
      43: return
      44: aload_0
      45: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      48: invokevirtual #366                // Method net/minecraft/world/damagesource/DamageSource.m_7640_:()Lnet/minecraft/world/entity/Entity;
      51: aload_1
      52: if_acmpeq     56
      55: return
      56: aload_1
      57: invokevirtual #369                // Method net/minecraft/world/entity/LivingEntity.m_21205_:()Lnet/minecraft/world/item/ItemStack;
      60: astore_2
      61: aload_2
      62: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      65: instanceof    #647                // class com/ogaba/sa_combat/combat/weapon/SAShieldItem
      68: ifeq          81
      71: aload_0
      72: iconst_1
      73: invokevirtual #651                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.setCanceled:(Z)V
      76: aload_0
      77: fconst_0
      78: invokevirtual #411                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.setAmount:(F)V
      81: return

  public static void applySpikedShieldThorns(net.minecraftforge.event.entity.living.ShieldBlockEvent);
    Code:
       0: aload_0
       1: invokevirtual #657                // Method net/minecraftforge/event/entity/living/ShieldBlockEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
       4: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
       7: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      10: ifeq          14
      13: return
      14: aload_0
      15: invokevirtual #657                // Method net/minecraftforge/event/entity/living/ShieldBlockEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      18: astore_1
      19: aload_0
      20: invokevirtual #660                // Method net/minecraftforge/event/entity/living/ShieldBlockEvent.getDamageSource:()Lnet/minecraft/world/damagesource/DamageSource;
      23: invokevirtual #363                // Method net/minecraft/world/damagesource/DamageSource.m_7639_:()Lnet/minecraft/world/entity/Entity;
      26: astore_2
      27: aload_2
      28: instanceof    #350                // class net/minecraft/world/entity/LivingEntity
      31: ifeq          51
      34: aload_2
      35: checkcast     #350                // class net/minecraft/world/entity/LivingEntity
      38: astore_3
      39: aload_3
      40: aload_1
      41: if_acmpeq     51
      44: aload_3
      45: invokevirtual #663                // Method net/minecraft/world/entity/LivingEntity.m_6084_:()Z
      48: ifne          52
      51: return
      52: aload_1
      53: invokevirtual #668                // Method net/minecraft/world/entity/LivingEntity.m_21211_:()Lnet/minecraft/world/item/ItemStack;
      56: astore        4
      58: aload_1
      59: aload_3
      60: aload         4
      62: aload_0
      63: invokevirtual #671                // Method net/minecraftforge/event/entity/living/ShieldBlockEvent.getBlockedDamage:()F
      66: invokestatic  #674                // Method applySpikedShieldThorns:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;F)Z
      69: ifne          86
      72: aload_1
      73: aload_3
      74: aload_1
      75: invokevirtual #677                // Method net/minecraft/world/entity/LivingEntity.m_21206_:()Lnet/minecraft/world/item/ItemStack;
      78: aload_0
      79: invokevirtual #671                // Method net/minecraftforge/event/entity/living/ShieldBlockEvent.getBlockedDamage:()F
      82: invokestatic  #674                // Method applySpikedShieldThorns:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;F)Z
      85: pop
      86: return

  public static void applySpikedShieldThornsFallback(net.minecraftforge.event.entity.living.LivingHurtEvent);
    Code:
       0: getstatic     #645                // Field proccingShieldThorns:Z
       3: ifne          28
       6: aload_0
       7: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      10: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
      13: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      16: ifne          28
      19: aload_0
      20: invokevirtual #407                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getAmount:()F
      23: fconst_0
      24: fcmpg
      25: ifgt          29
      28: return
      29: aload_0
      30: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      33: astore_1
      34: aload_1
      35: invokevirtual #686                // Method net/minecraft/world/entity/LivingEntity.m_21254_:()Z
      38: ifne          42
      41: return
      42: aload_0
      43: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      46: invokevirtual #363                // Method net/minecraft/world/damagesource/DamageSource.m_7639_:()Lnet/minecraft/world/entity/Entity;
      49: astore_2
      50: aload_2
      51: instanceof    #350                // class net/minecraft/world/entity/LivingEntity
      54: ifeq          74
      57: aload_2
      58: checkcast     #350                // class net/minecraft/world/entity/LivingEntity
      61: astore_3
      62: aload_3
      63: aload_1
      64: if_acmpeq     74
      67: aload_3
      68: invokevirtual #663                // Method net/minecraft/world/entity/LivingEntity.m_6084_:()Z
      71: ifne          75
      74: return
      75: aload_1
      76: invokevirtual #668                // Method net/minecraft/world/entity/LivingEntity.m_21211_:()Lnet/minecraft/world/item/ItemStack;
      79: astore        4
      81: aload_1
      82: aload_3
      83: aload         4
      85: aload_0
      86: invokevirtual #407                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getAmount:()F
      89: invokestatic  #674                // Method applySpikedShieldThorns:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;F)Z
      92: ifne          109
      95: aload_1
      96: aload_3
      97: aload_1
      98: invokevirtual #677                // Method net/minecraft/world/entity/LivingEntity.m_21206_:()Lnet/minecraft/world/item/ItemStack;
     101: aload_0
     102: invokevirtual #407                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getAmount:()F
     105: invokestatic  #674                // Method applySpikedShieldThorns:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;F)Z
     108: pop
     109: return

  private static boolean applySpikedShieldThorns(net.minecraft.world.entity.LivingEntity, net.minecraft.world.entity.LivingEntity, net.minecraft.world.item.ItemStack, float);
    Code:
       0: aload_2
       1: invokevirtual #277                // Method net/minecraft/world/item/ItemStack.m_41619_:()Z
       4: ifne          24
       7: aload_2
       8: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      11: instanceof    #647                // class com/ogaba/sa_combat/combat/weapon/SAShieldItem
      14: ifeq          24
      17: aload_2
      18: invokestatic  #689                // Method hasSpikedShieldUpgrade:(Lnet/minecraft/world/item/ItemStack;)Z
      21: ifne          26
      24: iconst_0
      25: ireturn
      26: aload_0
      27: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
      30: invokevirtual #692                // Method net/minecraft/world/level/Level.m_46467_:()J
      33: lstore        4
      35: aload_2
      36: invokevirtual #696                // Method net/minecraft/world/item/ItemStack.m_41784_:()Lnet/minecraft/nbt/CompoundTag;
      39: ldc_w         #698                // String SACombatLastShieldThornsTick
      42: invokevirtual #704                // Method net/minecraft/nbt/CompoundTag.m_128454_:(Ljava/lang/String;)J
      45: lload         4
      47: lcmp
      48: ifne          53
      51: iconst_1
      52: ireturn
      53: aload_2
      54: invokevirtual #696                // Method net/minecraft/world/item/ItemStack.m_41784_:()Lnet/minecraft/nbt/CompoundTag;
      57: ldc_w         #698                // String SACombatLastShieldThornsTick
      60: lload         4
      62: invokevirtual #708                // Method net/minecraft/nbt/CompoundTag.m_128356_:(Ljava/lang/String;J)V
      65: fconst_1
      66: ldc_w         #709                // float 4.0f
      69: fconst_1
      70: fload_3
      71: ldc_w         #710                // float 0.35f
      74: fmul
      75: fadd
      76: invokestatic  #713                // Method java/lang/Math.min:(FF)F
      79: invokestatic  #715                // Method java/lang/Math.max:(FF)F
      82: fstore        6
      84: iconst_1
      85: putstatic     #645                // Field proccingShieldThorns:Z
      88: aload_1
      89: aload_0
      90: invokevirtual #719                // Method net/minecraft/world/entity/LivingEntity.m_269291_:()Lnet/minecraft/world/damagesource/DamageSources;
      93: aload_0
      94: invokevirtual #725                // Method net/minecraft/world/damagesource/DamageSources.m_269374_:(Lnet/minecraft/world/entity/Entity;)Lnet/minecraft/world/damagesource/DamageSource;
      97: fload         6
      99: invokevirtual #729                // Method net/minecraft/world/entity/LivingEntity.m_6469_:(Lnet/minecraft/world/damagesource/DamageSource;F)Z
     102: pop
     103: iconst_0
     104: putstatic     #645                // Field proccingShieldThorns:Z
     107: goto          119
     110: astore        7
     112: iconst_0
     113: putstatic     #645                // Field proccingShieldThorns:Z
     116: aload         7
     118: athrow
     119: aload_0
     120: invokevirtual #393                // Method net/minecraft/world/entity/LivingEntity.m_217043_:()Lnet/minecraft/util/RandomSource;
     123: invokeinterface #732,  1          // InterfaceMethod net/minecraft/util/RandomSource.m_188501_:()F
     128: ldc_w         #710                // float 0.35f
     131: fcmpg
     132: ifge          159
     135: aload_1
     136: new           #734                // class net/minecraft/world/effect/MobEffectInstance
     139: dup
     140: getstatic     #739                // Field com/ogaba/sacore/registry/ModEffects.BLEEDING:Lnet/minecraftforge/registries/RegistryObject;
     143: invokevirtual #235                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
     146: checkcast     #741                // class net/minecraft/world/effect/MobEffect
     149: bipush        100
     151: iconst_0
     152: invokespecial #744                // Method net/minecraft/world/effect/MobEffectInstance."<init>":(Lnet/minecraft/world/effect/MobEffect;II)V
     155: invokevirtual #748                // Method net/minecraft/world/entity/LivingEntity.m_7292_:(Lnet/minecraft/world/effect/MobEffectInstance;)Z
     158: pop
     159: aload_0
     160: instanceof    #750                // class net/minecraft/world/entity/player/Player
     163: ifeq          183
     166: aload_0
     167: checkcast     #750                // class net/minecraft/world/entity/player/Player
     170: astore        7
     172: aload         7
     174: invokevirtual #754                // Method net/minecraft/world/entity/player/Player.m_150110_:()Lnet/minecraft/world/entity/player/Abilities;
     177: getfield      #759                // Field net/minecraft/world/entity/player/Abilities.f_35937_:Z
     180: ifne          194
     183: aload_2
     184: iconst_1
     185: aload_0
     186: invokedynamic #770,  0            // InvokeDynamic #7:accept:()Ljava/util/function/Consumer;
     191: invokevirtual #774                // Method net/minecraft/world/item/ItemStack.m_41622_:(ILnet/minecraft/world/entity/LivingEntity;Ljava/util/function/Consumer;)V
     194: aload_0
     195: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
     198: aconst_null
     199: aload_0
     200: invokevirtual #414                // Method net/minecraft/world/entity/LivingEntity.m_20185_:()D
     203: aload_0
     204: invokevirtual #417                // Method net/minecraft/world/entity/LivingEntity.m_20186_:()D
     207: aload_0
     208: invokevirtual #420                // Method net/minecraft/world/entity/LivingEntity.m_20189_:()D
     211: getstatic     #777                // Field net/minecraft/sounds/SoundEvents.f_12274_:Lnet/minecraft/sounds/SoundEvent;
     214: getstatic     #432                // Field net/minecraft/sounds/SoundSource.PLAYERS:Lnet/minecraft/sounds/SoundSource;
     217: ldc_w         #778                // float 0.7f
     220: ldc_w         #779                // float 1.1f
     223: invokevirtual #438                // Method net/minecraft/world/level/Level.m_6263_:(Lnet/minecraft/world/entity/player/Player;DDDLnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V
     226: iconst_1
     227: ireturn
    Exception table:
       from    to  target type
          88   103   110   any
         110   112   110   any

  private static boolean hasSpikedShieldUpgrade(net.minecraft.world.item.ItemStack);
    Code:
       0: aload_0
       1: ldc_w         #787                // String spiked
       4: invokestatic  #791                // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachmentData.hasAttachmentPath:(Lnet/minecraft/world/item/ItemStack;Ljava/lang/String;)Z
       7: ireturn

  public static void tickBallisticProtection(net.minecraftforge.event.TickEvent$PlayerTickEvent);
    Code:
       0: aload_0
       1: getfield      #797                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.phase:Lnet/minecraftforge/event/TickEvent$Phase;
       4: getstatic     #800                // Field net/minecraftforge/event/TickEvent$Phase.END:Lnet/minecraftforge/event/TickEvent$Phase;
       7: if_acmpne     23
      10: aload_0
      11: getfield      #802                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.player:Lnet/minecraft/world/entity/player/Player;
      14: invokevirtual #803                // Method net/minecraft/world/entity/player/Player.m_9236_:()Lnet/minecraft/world/level/Level;
      17: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      20: ifeq          24
      23: return
      24: aload_0
      25: getfield      #802                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.player:Lnet/minecraft/world/entity/player/Player;
      28: getfield      #806                // Field net/minecraft/world/entity/player/Player.f_19797_:I
      31: bipush        20
      33: irem
      34: ifeq          38
      37: return
      38: aload_0
      39: getfield      #802                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.player:Lnet/minecraft/world/entity/player/Player;
      42: invokestatic  #811                // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.tickEquippedVests:(Lnet/minecraft/world/entity/LivingEntity;)V
      45: aload_0
      46: getfield      #802                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.player:Lnet/minecraft/world/entity/player/Player;
      49: astore_2
      50: aload_2
      51: instanceof    #813                // class net/minecraft/server/level/ServerPlayer
      54: ifeq          66
      57: aload_2
      58: checkcast     #813                // class net/minecraft/server/level/ServerPlayer
      61: astore_1
      62: aload_1
      63: invokestatic  #817                // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.syncHud:(Lnet/minecraft/server/level/ServerPlayer;)V
      66: return

  public static void consumeBallisticProtectionOnDamage(net.minecraftforge.event.entity.living.LivingHurtEvent);
    Code:
       0: aload_0
       1: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
       4: invokevirtual #353                // Method net/minecraft/world/entity/LivingEntity.m_9236_:()Lnet/minecraft/world/level/Level;
       7: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      10: ifne          22
      13: aload_0
      14: invokevirtual #407                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getAmount:()F
      17: fconst_0
      18: fcmpg
      19: ifgt          23
      22: return
      23: aload_0
      24: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      27: astore_2
      28: aload_2
      29: instanceof    #813                // class net/minecraft/server/level/ServerPlayer
      32: ifeq          47
      35: aload_2
      36: checkcast     #813                // class net/minecraft/server/level/ServerPlayer
      39: astore_1
      40: aload_0
      41: invokestatic  #824                // Method isBallisticProjectileDamage:(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;)Z
      44: ifne          48
      47: return
      48: aload_1
      49: invokestatic  #828                // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.findBestEquippedVest:(Lnet/minecraft/world/entity/LivingEntity;)Ljava/util/Optional;
      52: aload_0
      53: aload_1
      54: invokedynamic #838,  0            // InvokeDynamic #8:accept:(Lnet/minecraftforge/event/entity/living/LivingHurtEvent;Lnet/minecraft/server/level/ServerPlayer;)Ljava/util/function/Consumer;
      59: invokevirtual #531                // Method java/util/Optional.ifPresent:(Ljava/util/function/Consumer;)V
      62: return

  private static boolean isBallisticProjectileDamage(net.minecraftforge.event.entity.living.LivingHurtEvent);
    Code:
       0: aload_0
       1: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
       4: ifnonnull     9
       7: iconst_0
       8: ireturn
       9: aload_0
      10: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      13: getstatic     #844                // Field net/minecraft/tags/DamageTypeTags.f_268524_:Lnet/minecraft/tags/TagKey;
      16: invokevirtual #848                // Method net/minecraft/world/damagesource/DamageSource.m_269533_:(Lnet/minecraft/tags/TagKey;)Z
      19: ifeq          24
      22: iconst_1
      23: ireturn
      24: aload_0
      25: invokevirtual #357                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
      28: invokevirtual #366                // Method net/minecraft/world/damagesource/DamageSource.m_7640_:()Lnet/minecraft/world/entity/Entity;
      31: astore_1
      32: aload_1
      33: instanceof    #850                // class net/minecraft/world/entity/projectile/Projectile
      36: ifeq          47
      39: aload_1
      40: checkcast     #850                // class net/minecraft/world/entity/projectile/Projectile
      43: astore_2
      44: goto          49
      47: iconst_0
      48: ireturn
      49: iconst_1
      50: ireturn

  public static void climbWithDualIceAxes(net.minecraftforge.event.TickEvent$PlayerTickEvent);
    Code:
       0: aload_0
       1: getfield      #797                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.phase:Lnet/minecraftforge/event/TickEvent$Phase;
       4: getstatic     #800                // Field net/minecraftforge/event/TickEvent$Phase.END:Lnet/minecraftforge/event/TickEvent$Phase;
       7: if_acmpeq     11
      10: return
      11: aload_0
      12: getfield      #802                // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.player:Lnet/minecraft/world/entity/player/Player;
      15: astore_1
      16: aload_1
      17: invokevirtual #857                // Method net/minecraft/world/entity/player/Player.m_5833_:()Z
      20: ifne          44
      23: aload_1
      24: invokevirtual #860                // Method net/minecraft/world/entity/player/Player.m_21255_:()Z
      27: ifne          44
      30: aload_1
      31: invokevirtual #863                // Method net/minecraft/world/entity/player/Player.m_20072_:()Z
      34: ifne          44
      37: aload_1
      38: invokevirtual #866                // Method net/minecraft/world/entity/player/Player.m_20096_:()Z
      41: ifeq          45
      44: return
      45: aload_1
      46: invokestatic  #870                // Method hasDualIceAxes:(Lnet/minecraft/world/entity/player/Player;)Z
      49: ifeq          59
      52: aload_1
      53: getfield      #873                // Field net/minecraft/world/entity/player/Player.f_19862_:Z
      56: ifne          60
      59: return
      60: aload_1
      61: invokevirtual #877                // Method net/minecraft/world/entity/player/Player.m_20184_:()Lnet/minecraft/world/phys/Vec3;
      64: astore_2
      65: aload_1
      66: invokevirtual #880                // Method net/minecraft/world/entity/player/Player.m_6144_:()Z
      69: istore_3
      70: iload_3
      71: ifeq          80
      74: ldc2_w        #881                // double -0.055d
      77: goto          83
      80: ldc2_w        #885                // double 0.125d
      83: dstore        4
      85: aload_2
      86: getfield      #889                // Field net/minecraft/world/phys/Vec3.f_82480_:D
      89: dload         4
      91: dcmpg
      92: ifge          122
      95: aload_1
      96: aload_2
      97: getfield      #892                // Field net/minecraft/world/phys/Vec3.f_82479_:D
     100: ldc2_w        #893                // double 0.72d
     103: dmul
     104: dload         4
     106: aload_2
     107: getfield      #897                // Field net/minecraft/world/phys/Vec3.f_82481_:D
     110: ldc2_w        #893                // double 0.72d
     113: dmul
     114: invokevirtual #901                // Method net/minecraft/world/entity/player/Player.m_20334_:(DDD)V
     117: aload_1
     118: iconst_1
     119: putfield      #904                // Field net/minecraft/world/entity/player/Player.f_19812_:Z
     122: aload_1
     123: fconst_0
     124: putfield      #907                // Field net/minecraft/world/entity/player/Player.f_19789_:F
     127: aload_1
     128: getfield      #806                // Field net/minecraft/world/entity/player/Player.f_19797_:I
     131: bipush        10
     133: irem
     134: ifne          142
     137: aload_1
     138: iload_3
     139: invokestatic  #911                // Method playIceAxeClimbSound:(Lnet/minecraft/world/entity/player/Player;Z)V
     142: aload_1
     143: invokevirtual #803                // Method net/minecraft/world/entity/player/Player.m_9236_:()Lnet/minecraft/world/level/Level;
     146: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
     149: ifne          188
     152: aload_1
     153: invokevirtual #754                // Method net/minecraft/world/entity/player/Player.m_150110_:()Lnet/minecraft/world/entity/player/Abilities;
     156: getfield      #759                // Field net/minecraft/world/entity/player/Abilities.f_35937_:Z
     159: ifne          188
     162: aload_1
     163: getfield      #806                // Field net/minecraft/world/entity/player/Player.f_19797_:I
     166: bipush        20
     168: irem
     169: ifne          188
     172: aload_1
     173: invokevirtual #912                // Method net/minecraft/world/entity/player/Player.m_21205_:()Lnet/minecraft/world/item/ItemStack;
     176: aload_1
     177: invokestatic  #916                // Method damageIceAxe:(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/player/Player;)V
     180: aload_1
     181: invokevirtual #917                // Method net/minecraft/world/entity/player/Player.m_21206_:()Lnet/minecraft/world/item/ItemStack;
     184: aload_1
     185: invokestatic  #916                // Method damageIceAxe:(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/player/Player;)V
     188: return

  private static void playIceAxeClimbSound(net.minecraft.world.entity.player.Player, boolean);
    Code:
       0: iload_1
       1: ifeq          10
       4: ldc_w         #922                // float 0.95f
       7: goto          13
      10: ldc_w         #923                // float 1.05f
      13: fstore_2
      14: iload_1
      15: ifeq          24
      18: ldc_w         #924                // float 0.72f
      21: goto          27
      24: ldc_w         #925                // float 1.22f
      27: fstore_3
      28: aload_0
      29: invokevirtual #803                // Method net/minecraft/world/entity/player/Player.m_9236_:()Lnet/minecraft/world/level/Level;
      32: invokevirtual #174                // Method net/minecraft/world/level/Level.m_5776_:()Z
      35: ifeq          81
      38: aload_0
      39: invokevirtual #803                // Method net/minecraft/world/entity/player/Player.m_9236_:()Lnet/minecraft/world/level/Level;
      42: aload_0
      43: invokevirtual #926                // Method net/minecraft/world/entity/player/Player.m_20185_:()D
      46: aload_0
      47: invokevirtual #927                // Method net/minecraft/world/entity/player/Player.m_20186_:()D
      50: aload_0
      51: invokevirtual #928                // Method net/minecraft/world/entity/player/Player.m_20189_:()D
      54: getstatic     #931                // Field net/minecraft/sounds/SoundEvents.f_144108_:Lnet/minecraft/sounds/SoundEvent;
      57: getstatic     #432                // Field net/minecraft/sounds/SoundSource.PLAYERS:Lnet/minecraft/sounds/SoundSource;
      60: fload_2
      61: fload_3
      62: aload_0
      63: invokevirtual #932                // Method net/minecraft/world/entity/player/Player.m_217043_:()Lnet/minecraft/util/RandomSource;
      66: invokeinterface #732,  1          // InterfaceMethod net/minecraft/util/RandomSource.m_188501_:()F
      71: ldc_w         #933                // float 0.1f
      74: fmul
      75: fadd
      76: iconst_0
      77: invokevirtual #937                // Method net/minecraft/world/level/Level.m_7785_:(DDDLnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FFZ)V
      80: return
      81: aload_0
      82: invokevirtual #803                // Method net/minecraft/world/entity/player/Player.m_9236_:()Lnet/minecraft/world/level/Level;
      85: aload_0
      86: aload_0
      87: invokevirtual #926                // Method net/minecraft/world/entity/player/Player.m_20185_:()D
      90: aload_0
      91: invokevirtual #927                // Method net/minecraft/world/entity/player/Player.m_20186_:()D
      94: aload_0
      95: invokevirtual #928                // Method net/minecraft/world/entity/player/Player.m_20189_:()D
      98: getstatic     #931                // Field net/minecraft/sounds/SoundEvents.f_144108_:Lnet/minecraft/sounds/SoundEvent;
     101: getstatic     #432                // Field net/minecraft/sounds/SoundSource.PLAYERS:Lnet/minecraft/sounds/SoundSource;
     104: fload_2
     105: ldc_w         #938                // float 0.55f
     108: fmul
     109: fload_3
     110: aload_0
     111: invokevirtual #932                // Method net/minecraft/world/entity/player/Player.m_217043_:()Lnet/minecraft/util/RandomSource;
     114: invokeinterface #732,  1          // InterfaceMethod net/minecraft/util/RandomSource.m_188501_:()F
     119: ldc_w         #933                // float 0.1f
     122: fmul
     123: fadd
     124: invokevirtual #438                // Method net/minecraft/world/level/Level.m_6263_:(Lnet/minecraft/world/entity/player/Player;DDDLnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V
     127: return

  private static boolean hasDualIceAxes(net.minecraft.world.entity.player.Player);
    Code:
       0: aload_0
       1: invokevirtual #912                // Method net/minecraft/world/entity/player/Player.m_21205_:()Lnet/minecraft/world/item/ItemStack;
       4: invokestatic  #943                // Method isIceAxe:(Lnet/minecraft/world/item/ItemStack;)Z
       7: ifeq          24
      10: aload_0
      11: invokevirtual #917                // Method net/minecraft/world/entity/player/Player.m_21206_:()Lnet/minecraft/world/item/ItemStack;
      14: invokestatic  #943                // Method isIceAxe:(Lnet/minecraft/world/item/ItemStack;)Z
      17: ifeq          24
      20: iconst_1
      21: goto          25
      24: iconst_0
      25: ireturn

  private static boolean isIceAxe(net.minecraft.world.item.ItemStack);
    Code:
       0: aload_0
       1: invokevirtual #277                // Method net/minecraft/world/item/ItemStack.m_41619_:()Z
       4: ifne          27
       7: aload_0
       8: getstatic     #948                // Field com/ogaba/sa_combat/registry/ModItems.ICE_AXE:Lnet/minecraftforge/registries/RegistryObject;
      11: invokevirtual #235                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
      14: checkcast     #950                // class net/minecraft/world/item/Item
      17: invokevirtual #954                // Method net/minecraft/world/item/ItemStack.m_150930_:(Lnet/minecraft/world/item/Item;)Z
      20: ifeq          27
      23: iconst_1
      24: goto          28
      27: iconst_0
      28: ireturn

  private static void damageIceAxe(net.minecraft.world.item.ItemStack, net.minecraft.world.entity.player.Player);
    Code:
       0: aload_0
       1: invokestatic  #943                // Method isIceAxe:(Lnet/minecraft/world/item/ItemStack;)Z
       4: ifne          8
       7: return
       8: aload_0
       9: iconst_1
      10: aload_1
      11: invokedynamic #957,  0            // InvokeDynamic #9:accept:()Ljava/util/function/Consumer;
      16: invokevirtual #774                // Method net/minecraft/world/item/ItemStack.m_41622_:(ILnet/minecraft/world/entity/LivingEntity;Ljava/util/function/Consumer;)V
      19: return

  public static void onServerTick(net.minecraftforge.event.TickEvent$ServerTickEvent);
    Code:
       0: aload_0
       1: getfield      #960                // Field net/minecraftforge/event/TickEvent$ServerTickEvent.phase:Lnet/minecraftforge/event/TickEvent$Phase;
       4: getstatic     #800                // Field net/minecraftforge/event/TickEvent$Phase.END:Lnet/minecraftforge/event/TickEvent$Phase;
       7: if_acmpne     17
      10: aload_0
      11: invokevirtual #964                // Method net/minecraftforge/event/TickEvent$ServerTickEvent.getServer:()Lnet/minecraft/server/MinecraftServer;
      14: invokestatic  #970                // Method com/ogaba/sa_combat/combat/weapon/ChainsawItem.tickActiveTreeFelling:(Lnet/minecraft/server/MinecraftServer;)V
      17: return

  public static void onPlayerLoggedIn(net.minecraftforge.event.entity.player.PlayerEvent$PlayerLoggedInEvent);
    Code:
       0: aload_0
       1: invokevirtual #976                // Method net/minecraftforge/event/entity/player/PlayerEvent$PlayerLoggedInEvent.getEntity:()Lnet/minecraft/world/entity/player/Player;
       4: astore_2
       5: aload_2
       6: instanceof    #813                // class net/minecraft/server/level/ServerPlayer
       9: ifeq          22
      12: aload_2
      13: checkcast     #813                // class net/minecraft/server/level/ServerPlayer
      16: astore_1
      17: aload_1
      18: iconst_1
      19: invokestatic  #979                // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.syncHud:(Lnet/minecraft/server/level/ServerPlayer;Z)V
      22: return

  public static void onPlayerLoggedOut(net.minecraftforge.event.entity.player.PlayerEvent$PlayerLoggedOutEvent);
    Code:
       0: aload_0
       1: invokevirtual #983                // Method net/minecraftforge/event/entity/player/PlayerEvent$PlayerLoggedOutEvent.getEntity:()Lnet/minecraft/world/entity/player/Player;
       4: invokevirtual #987                // Method net/minecraft/world/entity/player/Player.m_20148_:()Ljava/util/UUID;
       7: invokestatic  #991                // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.clearHudCache:(Ljava/util/UUID;)V
      10: return

  public static void onPlayerClone(net.minecraftforge.event.entity.player.PlayerEvent$Clone);
    Code:
       0: return

  private static boolean shouldBlockOffhandUse(net.minecraft.world.entity.player.Player, net.minecraft.world.InteractionHand);
    Code:
       0: aload_0
       1: ifnull        11
       4: aload_1
       5: getstatic     #1003               // Field net/minecraft/world/InteractionHand.OFF_HAND:Lnet/minecraft/world/InteractionHand;
       8: if_acmpeq     13
      11: iconst_0
      12: ireturn
      13: aload_0
      14: invokevirtual #912                // Method net/minecraft/world/entity/player/Player.m_21205_:()Lnet/minecraft/world/item/ItemStack;
      17: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      20: instanceof    #1005               // class com/ogaba/sa_combat/combat/weapon/NailGunItem
      23: ifne          39
      26: aload_0
      27: invokevirtual #917                // Method net/minecraft/world/entity/player/Player.m_21206_:()Lnet/minecraft/world/item/ItemStack;
      30: invokevirtual #119                // Method net/minecraft/world/item/ItemStack.m_41720_:()Lnet/minecraft/world/item/Item;
      33: instanceof    #1005               // class com/ogaba/sa_combat/combat/weapon/NailGunItem
      36: ifeq          43
      39: iconst_1
      40: goto          44
      43: iconst_0
      44: ireturn

  public static void onNailGunBlockOffhandItem(net.minecraftforge.event.entity.player.PlayerInteractEvent$RightClickItem);
    Code:
       0: aload_0
       1: invokevirtual #1009               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickItem.getEntity:()Lnet/minecraft/world/entity/player/Player;
       4: aload_0
       5: invokevirtual #1013               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickItem.getHand:()Lnet/minecraft/world/InteractionHand;
       8: invokestatic  #1015               // Method shouldBlockOffhandUse:(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;)Z
      11: ifeq          19
      14: aload_0
      15: iconst_1
      16: invokevirtual #1016               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickItem.setCanceled:(Z)V
      19: return

  public static void onNailGunBlockOffhandBlock(net.minecraftforge.event.entity.player.PlayerInteractEvent$RightClickBlock);
    Code:
       0: aload_0
       1: invokevirtual #1020               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickBlock.getEntity:()Lnet/minecraft/world/entity/player/Player;
       4: aload_0
       5: invokevirtual #1021               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickBlock.getHand:()Lnet/minecraft/world/InteractionHand;
       8: invokestatic  #1015               // Method shouldBlockOffhandUse:(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;)Z
      11: ifeq          26
      14: aload_0
      15: iconst_1
      16: invokevirtual #1022               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickBlock.setCanceled:(Z)V
      19: aload_0
      20: getstatic     #1028               // Field net/minecraft/world/InteractionResult.FAIL:Lnet/minecraft/world/InteractionResult;
      23: invokevirtual #1032               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$RightClickBlock.setCancellationResult:(Lnet/minecraft/world/InteractionResult;)V
      26: return

  public static void onNailGunBlockOffhandEntity(net.minecraftforge.event.entity.player.PlayerInteractEvent$EntityInteract);
    Code:
       0: aload_0
       1: invokevirtual #1036               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$EntityInteract.getEntity:()Lnet/minecraft/world/entity/player/Player;
       4: aload_0
       5: invokevirtual #1037               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$EntityInteract.getHand:()Lnet/minecraft/world/InteractionHand;
       8: invokestatic  #1015               // Method shouldBlockOffhandUse:(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;)Z
      11: ifeq          26
      14: aload_0
      15: iconst_1
      16: invokevirtual #1038               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$EntityInteract.setCanceled:(Z)V
      19: aload_0
      20: getstatic     #1028               // Field net/minecraft/world/InteractionResult.FAIL:Lnet/minecraft/world/InteractionResult;
      23: invokevirtual #1039               // Method net/minecraftforge/event/entity/player/PlayerInteractEvent$EntityInteract.setCancellationResult:(Lnet/minecraft/world/InteractionResult;)V
      26: return

  private static void lambda$consumeBallisticProtectionOnDamage$5(net.minecraftforge.event.entity.living.LivingHurtEvent, net.minecraft.server.level.ServerPlayer, net.minecraft.world.item.ItemStack);
    Code:
       0: aload_0
       1: invokevirtual #407                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getAmount:()F
       4: fstore_3
       5: aload_0
       6: aload_2
       7: fload_3
       8: invokestatic  #1044               // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.reduceProjectileDamage:(Lnet/minecraft/world/item/ItemStack;F)F
      11: invokevirtual #411                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.setAmount:(F)V
      14: aload_2
      15: fload_3
      16: invokestatic  #1048               // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.consumeProtection:(Lnet/minecraft/world/item/ItemStack;F)I
      19: ifle          26
      22: aload_1
      23: invokestatic  #817                // Method com/ogaba/sa_combat/combat/armor/BallisticProtection.syncHud:(Lnet/minecraft/server/level/ServerPlayer;)V
      26: return

  private static void lambda$procExternalWeaponAbilities$4(java.util.List, net.minecraftforge.event.entity.living.LivingHurtEvent, net.minecraft.world.entity.LivingEntity, com.ogaba.sa_combat.combat.modifier.WeaponModifier);
    Code:
       0: aload_3
       1: invokevirtual #1055               // Method com/ogaba/sa_combat/combat/modifier/WeaponModifier.createGrantedAbility:()Lcom/ogaba/sa_combat/combat/system/AbilityInstance;
       4: astore        4
       6: aload         4
       8: ifnull        20
      11: aload_0
      12: aload         4
      14: invokeinterface #520,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
      19: pop
      20: aload_3
      21: aload_1
      22: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      25: aload_2
      26: invokevirtual #1059               // Method com/ogaba/sa_combat/combat/modifier/WeaponModifier.applyOnHitEffects:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;)V
      29: return

  private static void lambda$procExternalWeaponAbilities$3(java.util.List, net.minecraftforge.event.entity.living.LivingHurtEvent, net.minecraft.world.entity.LivingEntity, com.ogaba.sa_combat.combat.attachment.WeaponAttachment);
    Code:
       0: aload_3
       1: invokevirtual #1066               // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachment.createGrantedAbility:()Lcom/ogaba/sa_combat/combat/system/AbilityInstance;
       4: astore        4
       6: aload         4
       8: ifnull        20
      11: aload_0
      12: aload         4
      14: invokeinterface #520,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
      19: pop
      20: aload_3
      21: aload_1
      22: invokevirtual #348                // Method net/minecraftforge/event/entity/living/LivingHurtEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      25: aload_2
      26: invokevirtual #1067               // Method com/ogaba/sa_combat/combat/attachment/WeaponAttachment.applyOnHitEffects:(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;)V
      29: return

  private static boolean lambda$procExternalWeaponAbilities$2(com.ogaba.sa_combat.combat.system.AbilityInstance);
    Code:
       0: aload_0
       1: ifnull        8
       4: iconst_1
       5: goto          9
       8: iconst_0
       9: ireturn

  private static com.ogaba.sa_combat.combat.system.AbilityInstance lambda$procExternalWeaponAbilities$1(com.ogaba.sa_combat.combat.upgrade.WeaponUpgradeData$Entry, com.ogaba.sa_combat.combat.upgrade.WeaponUpgrade);
    Code:
       0: aload_1
       1: aload_0
       2: invokevirtual #1072               // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeData$Entry.level:()I
       5: invokevirtual #1078               // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgrade.createAbility:(I)Lcom/ogaba/sa_combat/combat/system/AbilityInstance;
       8: areturn

  private static boolean lambda$procExternalWeaponAbilities$0(com.ogaba.sa_combat.combat.upgrade.WeaponUpgrade);
    Code:
       0: aload_0
       1: invokevirtual #1083               // Method com/ogaba/sa_combat/combat/upgrade/WeaponUpgrade.category:()Lcom/ogaba/sa_combat/combat/upgrade/WeaponUpgradeCategory;
       4: getstatic     #1089               // Field com/ogaba/sa_combat/combat/upgrade/WeaponUpgradeCategory.ABILITY:Lcom/ogaba/sa_combat/combat/upgrade/WeaponUpgradeCategory;
       7: if_acmpne     14
      10: iconst_1
      11: goto          15
      14: iconst_0
      15: ireturn

  static {};
    Code:
       0: ldc_w         #1092               // String 13a24b02-d971-4ee7-879c-1c7068a6bb71
       3: invokestatic  #1098               // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
       6: putstatic     #296                // Field EXTERNAL_UPGRADE_DAMAGE_UUID:Ljava/util/UUID;
       9: ldc_w         #1100               // String 457d3b0c-c7b7-43a4-8395-01f82ec1bdb2
      12: invokestatic  #1098               // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
      15: putstatic     #307                // Field EXTERNAL_UPGRADE_SPEED_UUID:Ljava/util/UUID;
      18: ldc_w         #1102               // String df109f67-5b6d-4de4-9a1b-c75443c0f1b2
      21: invokestatic  #1098               // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
      24: putstatic     #318                // Field EXTERNAL_UPGRADE_KNOCKBACK_UUID:Ljava/util/UUID;
      27: ldc_w         #1104               // String 9d46b9e9-46cb-4ab3-b2a0-c0e331cce312
      30: invokestatic  #1098               // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
      33: putstatic     #331                // Field EXTERNAL_UPGRADE_REACH_UUID:Ljava/util/UUID;
      36: ldc_w         #1106               // String 11d92754-4e96-4c9e-9b25-d8945bc43b24
      39: invokestatic  #1098               // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
      42: putstatic     #143                // Field TACZ_VEST_BULLET_RESISTANCE_UUID:Ljava/util/UUID;
      45: new           #1108               // class net/minecraft/resources/ResourceLocation
      48: dup
      49: ldc_w         #1110               // String tacz
      52: ldc_w         #1112               // String tacz.bullet_resistance
      55: invokespecial #1115               // Method net/minecraft/resources/ResourceLocation."<init>":(Ljava/lang/String;Ljava/lang/String;)V
      58: putstatic     #129                // Field TACZ_BULLET_RESISTANCE_ID:Lnet/minecraft/resources/ResourceLocation;
      61: iconst_0
      62: putstatic     #446                // Field proccingExternalAbility:Z
      65: iconst_0
      66: putstatic     #645                // Field proccingShieldThorns:Z
      69: return
}
