@Override
  public void processPacket(NetHandler nethandler) {
    ObjectPair<World, EntityPlayer> pair = UtilMinecraft.getWorldAndPlayer(PlayerName);
    world = pair.getV1();
    player = pair.getV2();
    if (metadata == -1) {
      AnimalCrossing.reset(world, X, Y, Z);
      return;
    }

    world.playAuxSFX(1022, X, Y, Z, 0);

    if (AnimalCrossing.counting(world, X, Y, Z)) {
      SearchAndSpawnBlocks();
    }
  }
  private void SearchNext(World world, Position now) {
    if (SpawnMap.containsKey(now.getVisualityValue())) return;

    Block cb = Block.blocksList[UtilWorld.getBlockID(world, now)];
    String cz = cb == null ? "!@#@!" : cb.getClass().getSimpleName();

    if (UtilBlock.isEqualWoodBlocks(world, now, new Position(X, Y, Z))
        || AnimalCrossing.isLeaf(
            UtilWorld.getBlockID(world, now), UtilWorld.getBlockMetadata(world, now), cz)) {
      SpawnMap.put(now.getVisualityValue(), Boolean.valueOf(true));
      DataMap.put(
          now.getVisualityValue(),
          String.format(
              "%d:%d", UtilWorld.getBlockID(world, now), UtilWorld.getBlockMetadata(world, now)));

      UtilPosition.putAroundNextPositions(now, WideSearchQueue);
    } else {
      SpawnMap.put(now.getVisualityValue(), Boolean.valueOf(false));
    }
  }