Compiled from "PumpkinHunterEvents.java"
public final class com.xoxech.pumpkinhunter.entity.PumpkinHunterEvents {
  private static final java.util.Random RANDOM;

  private static final java.util.Map<java.util.UUID, java.lang.Integer> ACTIVE_HUNTS;

  private static long LAST_NATURAL_SPAWN_NIGHT;

  public com.xoxech.pumpkinhunter.entity.PumpkinHunterEvents();
    Code:
       0: aload_0
       1: invokespecial #46                 // Method java/lang/Object."<init>":()V
       4: return

  public static void onPlayerTick(net.minecraftforge.event.TickEvent$PlayerTickEvent);
    Code:
       0: aload_0
       1: getfield      #53                 // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.phase:Lnet/minecraftforge/event/TickEvent$Phase;
       4: getstatic     #56                 // Field net/minecraftforge/event/TickEvent$Phase.END:Lnet/minecraftforge/event/TickEvent$Phase;
       7: if_acmpne     30
      10: aload_0
      11: getfield      #60                 // Field net/minecraftforge/event/TickEvent$PlayerTickEvent.player:Lnet/minecraft/world/entity/player/Player;
      14: astore_2
      15: aload_2
      16: instanceof    #62                 // class net/minecraft/server/level/ServerPlayer
      19: ifeq          30
      22: aload_2
      23: checkcast     #62                 // class net/minecraft/server/level/ServerPlayer
      26: astore_1
      27: goto          31
      30: return
      31: aload_1
      32: invokevirtual #66                 // Method net/minecraft/server/level/ServerPlayer.m_9236_:()Lnet/minecraft/world/level/Level;
      35: astore_3
      36: aload_3
      37: instanceof    #68                 // class net/minecraft/server/level/ServerLevel
      40: ifeq          51
      43: aload_3
      44: checkcast     #68                 // class net/minecraft/server/level/ServerLevel
      47: astore_2
      48: goto          52
      51: return
      52: aload_2
      53: invokevirtual #72                 // Method net/minecraft/server/level/ServerLevel.m_46467_:()J
      56: aload_1
      57: invokevirtual #76                 // Method net/minecraft/server/level/ServerPlayer.m_20148_:()Ljava/util/UUID;
      60: invokevirtual #82                 // Method java/util/UUID.hashCode:()I
      63: invokestatic  #88                 // Method java/lang/Math.abs:(I)I
      66: i2l
      67: ladd
      68: ldc2_w        #89                 // long 600l
      71: lrem
      72: lconst_0
      73: lcmp
      74: ifeq          78
      77: return
      78: aload_2
      79: invokevirtual #72                 // Method net/minecraft/server/level/ServerLevel.m_46467_:()J
      82: ldc2_w        #91                 // long 48000l
      85: lcmp
      86: iflt          96
      89: aload_2
      90: invokevirtual #96                 // Method net/minecraft/server/level/ServerLevel.m_46462_:()Z
      93: ifne          97
      96: return
      97: aload_2
      98: invokevirtual #100                // Method net/minecraft/server/level/ServerLevel.m_46472_:()Lnet/minecraft/resources/ResourceKey;
     101: getstatic     #106                // Field net/minecraft/world/level/Level.f_46428_:Lnet/minecraft/resources/ResourceKey;
     104: invokevirtual #110                // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
     107: ifne          111
     110: return
     111: aload_2
     112: invokevirtual #72                 // Method net/minecraft/server/level/ServerLevel.m_46467_:()J
     115: ldc2_w        #111                // long 24000l
     118: ldiv
     119: lstore_3
     120: getstatic     #114                // Field LAST_NATURAL_SPAWN_NIGHT:J
     123: lload_3
     124: lcmp
     125: ifne          129
     128: return
     129: getstatic     #116                // Field ACTIVE_HUNTS:Ljava/util/Map;
     132: aload_1
     133: invokevirtual #76                 // Method net/minecraft/server/level/ServerPlayer.m_20148_:()Ljava/util/UUID;
     136: invokeinterface #121,  2          // InterfaceMethod java/util/Map.containsKey:(Ljava/lang/Object;)Z
     141: ifeq          145
     144: return
     145: aload_1
     146: invokevirtual #124                // Method net/minecraft/server/level/ServerPlayer.m_6084_:()Z
     149: ifne          153
     152: return
     153: aload_2
     154: invokedynamic #142,  0            // InvokeDynamic #0:test:()Ljava/util/function/Predicate;
     159: invokevirtual #146                // Method net/minecraft/server/level/ServerLevel.m_8795_:(Ljava/util/function/Predicate;)Ljava/util/List;
     162: invokeinterface #152,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     167: astore        5
     169: aload         5
     171: invokeinterface #157,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     176: ifeq          264
     179: aload         5
     181: invokeinterface #161,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     186: checkcast     #62                 // class net/minecraft/server/level/ServerPlayer
     189: astore        6
     191: aload         6
     193: aload_1
     194: if_acmpne     200
     197: goto          169
     200: aload         6
     202: invokevirtual #165                // Method net/minecraft/server/level/ServerPlayer.m_20185_:()D
     205: aload_1
     206: invokevirtual #165                // Method net/minecraft/server/level/ServerPlayer.m_20185_:()D
     209: dsub
     210: dstore        7
     212: aload         6
     214: invokevirtual #168                // Method net/minecraft/server/level/ServerPlayer.m_20186_:()D
     217: aload_1
     218: invokevirtual #168                // Method net/minecraft/server/level/ServerPlayer.m_20186_:()D
     221: dsub
     222: dstore        9
     224: aload         6
     226: invokevirtual #171                // Method net/minecraft/server/level/ServerPlayer.m_20189_:()D
     229: aload_1
     230: invokevirtual #171                // Method net/minecraft/server/level/ServerPlayer.m_20189_:()D
     233: dsub
     234: dstore        11
     236: dload         7
     238: dload         7
     240: dmul
     241: dload         9
     243: dload         9
     245: dmul
     246: dadd
     247: dload         11
     249: dload         11
     251: dmul
     252: dadd
     253: ldc2_w        #172                // double 4096.0d
     256: dcmpg
     257: ifgt          261
     260: return
     261: goto          169
     264: aload_1
     265: invokevirtual #76                 // Method net/minecraft/server/level/ServerPlayer.m_20148_:()Ljava/util/UUID;
     268: invokestatic  #179                // Method com/xoxech/pumpkinhunter/entity/SpawnTracker.roll:(Ljava/util/UUID;)Z
     271: ifne          275
     274: return
     275: aload_2
     276: aload_1
     277: invokestatic  #183                // Method findSpawn:(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/server/level/ServerPlayer;)Lnet/minecraft/core/BlockPos;
     280: astore        5
     282: aload         5
     284: ifnonnull     295
     287: aload_1
     288: invokevirtual #76                 // Method net/minecraft/server/level/ServerPlayer.m_20148_:()Ljava/util/UUID;
     291: invokestatic  #187                // Method com/xoxech/pumpkinhunter/entity/SpawnTracker.spawnPositionFailed:(Ljava/util/UUID;)V
     294: return
     295: getstatic     #193                // Field com/xoxech/pumpkinhunter/PumpkinHunterMod.PUMPKIN_HUNTER:Lnet/minecraftforge/registries/RegistryObject;
     298: invokevirtual #198                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
     301: checkcast     #200                // class net/minecraft/world/entity/EntityType
     304: aload_2
     305: invokevirtual #204                // Method net/minecraft/world/entity/EntityType.m_20615_:(Lnet/minecraft/world/level/Level;)Lnet/minecraft/world/entity/Entity;
     308: checkcast     #206                // class com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity
     311: astore        6
     313: aload         6
     315: ifnonnull     319
     318: return
     319: aload         6
     321: aload         5
     323: invokevirtual #211                // Method net/minecraft/core/BlockPos.m_123341_:()I
     326: i2d
     327: ldc2_w        #212                // double 0.5d
     330: dadd
     331: aload         5
     333: invokevirtual #216                // Method net/minecraft/core/BlockPos.m_123342_:()I
     336: i2d
     337: aload         5
     339: invokevirtual #219                // Method net/minecraft/core/BlockPos.m_123343_:()I
     342: i2d
     343: ldc2_w        #212                // double 0.5d
     346: dadd
     347: invokevirtual #223                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_20343_:(DDD)V
     350: aload         6
     352: ldc           #225                // String MAINHAND
     354: invokestatic  #231                // Method net/minecraft/world/entity/EquipmentSlot.valueOf:(Ljava/lang/String;)Lnet/minecraft/world/entity/EquipmentSlot;
     357: new           #233                // class net/minecraft/world/item/ItemStack
     360: dup
     361: getstatic     #236                // Field com/xoxech/pumpkinhunter/PumpkinHunterMod.HUNTERS_AXE:Lnet/minecraftforge/registries/RegistryObject;
     364: invokevirtual #198                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
     367: checkcast     #238                // class net/minecraft/world/level/ItemLike
     370: invokespecial #241                // Method net/minecraft/world/item/ItemStack."<init>":(Lnet/minecraft/world/level/ItemLike;)V
     373: invokevirtual #245                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_8061_:(Lnet/minecraft/world/entity/EquipmentSlot;Lnet/minecraft/world/item/ItemStack;)V
     376: aload         6
     378: ldc           #225                // String MAINHAND
     380: invokestatic  #231                // Method net/minecraft/world/entity/EquipmentSlot.valueOf:(Ljava/lang/String;)Lnet/minecraft/world/entity/EquipmentSlot;
     383: fconst_0
     384: invokevirtual #249                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_21409_:(Lnet/minecraft/world/entity/EquipmentSlot;F)V
     387: aload         6
     389: invokevirtual #252                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_21530_:()V
     392: aload_1
     393: invokevirtual #165                // Method net/minecraft/server/level/ServerPlayer.m_20185_:()D
     396: aload         6
     398: invokevirtual #253                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_20185_:()D
     401: dsub
     402: dstore        7
     404: aload_1
     405: invokevirtual #171                // Method net/minecraft/server/level/ServerPlayer.m_20189_:()D
     408: aload         6
     410: invokevirtual #254                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_20189_:()D
     413: dsub
     414: dstore        9
     416: dload         9
     418: dload         7
     420: invokestatic  #258                // Method java/lang/Math.atan2:(DD)D
     423: ldc2_w        #259                // double 180.0d
     426: dmul
     427: ldc2_w        #261                // double 3.141592653589793d
     430: ddiv
     431: d2f
     432: ldc_w         #263                // float 90.0f
     435: fsub
     436: fstore        11
     438: aload         6
     440: fload         11
     442: invokevirtual #267                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_146922_:(F)V
     445: aload         6
     447: fload         11
     449: invokevirtual #270                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_5616_:(F)V
     452: aload         6
     454: fload         11
     456: invokevirtual #273                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_5618_:(F)V
     459: aload         6
     461: aload_1
     462: invokevirtual #76                 // Method net/minecraft/server/level/ServerPlayer.m_20148_:()Ljava/util/UUID;
     465: invokevirtual #276                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.beginHunt:(Ljava/util/UUID;)V
     468: aload_2
     469: aload         6
     471: invokevirtual #280                // Method net/minecraft/server/level/ServerLevel.m_7967_:(Lnet/minecraft/world/entity/Entity;)Z
     474: ifeq          560
     477: lload_3
     478: putstatic     #114                // Field LAST_NATURAL_SPAWN_NIGHT:J
     481: getstatic     #116                // Field ACTIVE_HUNTS:Ljava/util/Map;
     484: aload_1
     485: invokevirtual #76                 // Method net/minecraft/server/level/ServerPlayer.m_20148_:()Ljava/util/UUID;
     488: aload         6
     490: invokevirtual #283                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_19879_:()I
     493: invokestatic  #288                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     496: invokeinterface #292,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     501: pop
     502: aload_1
     503: invokestatic  #296                // Method com/xoxech/pumpkinhunter/entity/SpawnTracker.randomMessage:()Ljava/lang/String;
     506: invokestatic  #302                // InterfaceMethod net/minecraft/network/chat/Component.m_237113_:(Ljava/lang/String;)Lnet/minecraft/network/chat/MutableComponent;
     509: iconst_0
     510: invokevirtual #306                // Method net/minecraft/server/level/ServerPlayer.m_5661_:(Lnet/minecraft/network/chat/Component;Z)V
     513: getstatic     #308                // Field RANDOM:Ljava/util/Random;
     516: getstatic     #312                // Field com/xoxech/pumpkinhunter/PumpkinHunterMod.CAVE_SOUNDS:Ljava/util/List;
     519: invokeinterface #315,  1          // InterfaceMethod java/util/List.size:()I
     524: invokevirtual #320                // Method java/util/Random.nextInt:(I)I
     527: istore        12
     529: aload_1
     530: getstatic     #312                // Field com/xoxech/pumpkinhunter/PumpkinHunterMod.CAVE_SOUNDS:Ljava/util/List;
     533: iload         12
     535: invokeinterface #323,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     540: checkcast     #195                // class net/minecraftforge/registries/RegistryObject
     543: invokevirtual #198                // Method net/minecraftforge/registries/RegistryObject.get:()Ljava/lang/Object;
     546: checkcast     #325                // class net/minecraft/sounds/SoundEvent
     549: ldc_w         #327                // String HOSTILE
     552: invokestatic  #332                // Method net/minecraft/sounds/SoundSource.valueOf:(Ljava/lang/String;)Lnet/minecraft/sounds/SoundSource;
     555: fconst_1
     556: fconst_1
     557: invokevirtual #336                // Method net/minecraft/server/level/ServerPlayer.m_6330_:(Lnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V
     560: return

  private static net.minecraft.core.BlockPos findSpawn(net.minecraft.server.level.ServerLevel, net.minecraft.server.level.ServerPlayer);
    Code:
       0: iconst_0
       1: istore_2
       2: iload_2
       3: bipush        28
       5: if_icmpge     220
       8: getstatic     #308                // Field RANDOM:Ljava/util/Random;
      11: invokevirtual #341                // Method java/util/Random.nextDouble:()D
      14: ldc2_w        #261                // double 3.141592653589793d
      17: dmul
      18: ldc2_w        #342                // double 2.0d
      21: dmul
      22: dstore_3
      23: ldc2_w        #344                // double 12.0d
      26: getstatic     #308                // Field RANDOM:Ljava/util/Random;
      29: invokevirtual #341                // Method java/util/Random.nextDouble:()D
      32: ldc2_w        #346                // double 28.0d
      35: dmul
      36: dadd
      37: dstore        5
      39: aload_1
      40: invokevirtual #165                // Method net/minecraft/server/level/ServerPlayer.m_20185_:()D
      43: dload_3
      44: invokestatic  #351                // Method java/lang/Math.cos:(D)D
      47: dload         5
      49: dmul
      50: dadd
      51: invokestatic  #354                // Method java/lang/Math.floor:(D)D
      54: d2i
      55: istore        7
      57: aload_1
      58: invokevirtual #171                // Method net/minecraft/server/level/ServerPlayer.m_20189_:()D
      61: dload_3
      62: invokestatic  #357                // Method java/lang/Math.sin:(D)D
      65: dload         5
      67: dmul
      68: dadd
      69: invokestatic  #354                // Method java/lang/Math.floor:(D)D
      72: d2i
      73: istore        8
      75: aload_1
      76: invokevirtual #168                // Method net/minecraft/server/level/ServerPlayer.m_20186_:()D
      79: invokestatic  #354                // Method java/lang/Math.floor:(D)D
      82: d2i
      83: getstatic     #308                // Field RANDOM:Ljava/util/Random;
      86: bipush        9
      88: invokevirtual #320                // Method java/util/Random.nextInt:(I)I
      91: iadd
      92: iconst_4
      93: isub
      94: istore        9
      96: iconst_0
      97: istore        10
      99: iload         10
     101: bipush        10
     103: if_icmpgt     214
     106: iload         9
     108: iload         10
     110: isub
     111: istore        11
     113: new           #208                // class net/minecraft/core/BlockPos
     116: dup
     117: iload         7
     119: iload         11
     121: iload         8
     123: invokespecial #360                // Method net/minecraft/core/BlockPos."<init>":(III)V
     126: astore        12
     128: new           #208                // class net/minecraft/core/BlockPos
     131: dup
     132: iload         7
     134: iload         11
     136: iconst_1
     137: iadd
     138: iload         8
     140: invokespecial #360                // Method net/minecraft/core/BlockPos."<init>":(III)V
     143: astore        13
     145: new           #208                // class net/minecraft/core/BlockPos
     148: dup
     149: iload         7
     151: iload         11
     153: iconst_1
     154: isub
     155: iload         8
     157: invokespecial #360                // Method net/minecraft/core/BlockPos."<init>":(III)V
     160: astore        14
     162: aload_0
     163: aload         12
     165: invokevirtual #364                // Method net/minecraft/server/level/ServerLevel.m_46859_:(Lnet/minecraft/core/BlockPos;)Z
     168: ifeq          208
     171: aload_0
     172: aload         13
     174: invokevirtual #364                // Method net/minecraft/server/level/ServerLevel.m_46859_:(Lnet/minecraft/core/BlockPos;)Z
     177: ifeq          208
     180: aload_0
     181: aload         14
     183: invokevirtual #364                // Method net/minecraft/server/level/ServerLevel.m_46859_:(Lnet/minecraft/core/BlockPos;)Z
     186: ifeq          192
     189: goto          208
     192: aload_0
     193: aload         12
     195: invokevirtual #368                // Method net/minecraft/server/level/ServerLevel.m_46803_:(Lnet/minecraft/core/BlockPos;)I
     198: iconst_3
     199: if_icmple     205
     202: goto          208
     205: aload         12
     207: areturn
     208: iinc          10, 1
     211: goto          99
     214: iinc          2, 1
     217: goto          2
     220: aconst_null
     221: areturn

  public static void onLivingDeath(net.minecraftforge.event.entity.living.LivingDeathEvent);
    Code:
       0: aload_0
       1: invokevirtual #376                // Method net/minecraftforge/event/entity/living/LivingDeathEvent.getSource:()Lnet/minecraft/world/damagesource/DamageSource;
       4: invokevirtual #382                // Method net/minecraft/world/damagesource/DamageSource.m_7639_:()Lnet/minecraft/world/entity/Entity;
       7: astore_1
       8: aload_0
       9: invokevirtual #386                // Method net/minecraftforge/event/entity/living/LivingDeathEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      12: instanceof    #62                 // class net/minecraft/server/level/ServerPlayer
      15: ifeq          34
      18: aload_1
      19: instanceof    #206                // class com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity
      22: ifeq          34
      25: aload_1
      26: checkcast     #206                // class com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity
      29: astore_2
      30: aload_2
      31: invokevirtual #389                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.beginFeast:()V
      34: aload_0
      35: invokevirtual #386                // Method net/minecraftforge/event/entity/living/LivingDeathEvent.getEntity:()Lnet/minecraft/world/entity/LivingEntity;
      38: astore_3
      39: aload_3
      40: instanceof    #206                // class com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity
      43: ifeq          62
      46: aload_3
      47: checkcast     #206                // class com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity
      50: astore_2
      51: aload_2
      52: invokevirtual #392                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.huntedPlayer:()Ljava/util/UUID;
      55: aload_2
      56: invokevirtual #283                // Method com/xoxech/pumpkinhunter/entity/PumpkinHunterEntity.m_19879_:()I
      59: invokestatic  #396                // Method huntEnded:(Ljava/util/UUID;I)V
      62: return

  public static void huntEnded(java.util.UUID, int);
    Code:
       0: aload_0
       1: ifnonnull     5
       4: return
       5: aload_0
       6: invokestatic  #402                // Method com/xoxech/pumpkinhunter/entity/SpawnTracker.huntEnded:(Ljava/util/UUID;)V
       9: getstatic     #116                // Field ACTIVE_HUNTS:Ljava/util/Map;
      12: aload_0
      13: invokeinterface #405,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      18: checkcast     #285                // class java/lang/Integer
      21: astore_2
      22: aload_2
      23: ifnull        44
      26: aload_2
      27: invokevirtual #408                // Method java/lang/Integer.intValue:()I
      30: iload_1
      31: if_icmpne     44
      34: getstatic     #116                // Field ACTIVE_HUNTS:Ljava/util/Map;
      37: aload_0
      38: invokeinterface #411,  2          // InterfaceMethod java/util/Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
      43: pop
      44: return

  private static boolean lambda$onPlayerTick$0(net.minecraft.server.level.ServerPlayer);
    Code:
       0: aload_0
       1: invokevirtual #124                // Method net/minecraft/server/level/ServerPlayer.m_6084_:()Z
       4: ireturn

  static {};
    Code:
       0: new           #317                // class java/util/Random
       3: dup
       4: invokespecial #413                // Method java/util/Random."<init>":()V
       7: putstatic     #308                // Field RANDOM:Ljava/util/Random;
      10: new           #415                // class java/util/HashMap
      13: dup
      14: invokespecial #416                // Method java/util/HashMap."<init>":()V
      17: putstatic     #116                // Field ACTIVE_HUNTS:Ljava/util/Map;
      20: ldc2_w        #417                // long -9223372036854775808l
      23: putstatic     #114                // Field LAST_NATURAL_SPAWN_NIGHT:J
      26: return
}
