private void port(Player player, int paramInt) {
   PlayerGroup playergroup = player.getPlayerGroup();
   WorldMapInstance localWorldMapInstance =
       InstanceService.getRegisteredInstance(
           WorldMapType.IDDRAMATA_01.getId(), playergroup.getGroupId());
   if (localWorldMapInstance == null) {
     localWorldMapInstance = InstanceService.getNextAvailableInstance(paramInt);
     InstanceService.registerGroupWithInstance(localWorldMapInstance, playergroup);
   }
   transfer(player, localWorldMapInstance);
 }
  public void onDialogSelect(int paramInt1, Player player, int paramInt2) {
    Npc target = getOwner();
    Object localObject;
    PlayerGroup playergroup = player.getPlayerGroup();
    int i = target.getObjectId().intValue();
    switch (getOwner().getNpcId()) {
      case 730291:
      case 730293:
        switch (paramInt1) {
          case 10000:
            int j = 0;
            if (player.getCommonData().getRace() == Race.ASMODIANS) j = 185000090;
            else j = 185000089;
            if (hasItem(player, j)) {
              Item item = player.getInventory().getFirstItemByItemId(j);
              if (item == null) return;

              player.getInventory().removeFromBag(item, true);
              PacketSendUtility.sendPacket(
                  player, new SM_DELETE_ITEM(item.getObjectId().intValue()));
              if (player.getPlayerGroup() == null || player.getLevel() < 50) {
                PacketSendUtility.sendPacket(
                    player, SM_SYSTEM_MESSAGE.STR_MSG_ENTER_ONLY_PARTY_DON);
                return;
              }
              int r = WorldMapType.IDDRAMATA_01.getId();
              localObject =
                  InstanceService.getRegisteredInstance(r, player.getObjectId().intValue());
              if (localObject != null) {
                transfer(player, (WorldMapInstance) localObject);
                return;
              }
              port(player, r);
              return;
            } else {
              PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(i, 1012));
            }
            return;
        }
        return;
    }
  }
  @Override
  public boolean onDialogEvent(QuestCookie env) {
    final Player player = env.getPlayer();
    final QuestState qs = player.getQuestStateList().getQuestState(questId);
    if (qs == null) return false;

    int var = qs.getQuestVarById(0);
    int targetId = 0;
    if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId();

    if (qs.getStatus() == QuestStatus.REWARD) {
      if (targetId == 798927) {
        if (env.getDialogId() == -1) return sendQuestDialog(env, 10002);
        else if (env.getDialogId() == 1009) return sendQuestDialog(env, 5);
        else return defaultQuestEndDialog(env);
      }
      return false;
    } else if (qs.getStatus() == QuestStatus.COMPLETE) {
      if (targetId == 799022) {
        if (env.getDialogId() == -1) return sendQuestDialog(env, 2376);
        else if (env.getDialogId() == 10004) {
          if (player.getPlayerGroup() == null) {
            WorldMapTemplate world = DataManager.WORLD_MAPS_DATA.getTemplate(300190000);
            int mapname = DataManager.WORLD_MAPS_DATA.getTemplate(300190000).getMapNameId();
            if (!InstanceService.canEnterInstance(player, world.getInstanceMapId(), 0)) {
              int timeinMinutes =
                  InstanceService.getTimeInfo(player).get(world.getInstanceMapId()) / 60;
              if (timeinMinutes >= 60)
                PacketSendUtility.sendPacket(
                    player,
                    SM_SYSTEM_MESSAGE.STR_MSG_CANNOT_ENTER_INSTANCE_COOL_TIME_HOUR(
                        mapname, timeinMinutes / 60));
              else
                PacketSendUtility.sendPacket(
                    player,
                    SM_SYSTEM_MESSAGE.STR_MSG_CANNOT_ENTER_INSTANCE_COOL_TIME_MIN(
                        mapname, timeinMinutes));

              return false;
            }
            if (!hasItem(player, 182206627)) {
              if (!ItemService.addItems(
                  player, Collections.singletonList(new QuestItems(182206627, 1)))) return true;
            }
            if (!hasItem(player, 182206628)) {
              if (!ItemService.addItems(
                  player, Collections.singletonList(new QuestItems(182206628, 1)))) return true;
            }
            WorldMapInstance newInstance = InstanceService.getNextAvailableInstance(300190000);
            InstanceService.registerPlayerWithInstance(newInstance, player);
            TeleportService.teleportTo(
                player,
                300190000,
                newInstance.getInstanceId(),
                198.82353f,
                221.40387f,
                1098.4879f,
                (byte) 41);
            PortalController.setInstanceCooldown(player, 300190000, newInstance.getInstanceId());
            return true;
          } else return sendQuestDialog(env, 2546);
        } else return defaultQuestStartDialog(env);
      } else if (targetId == 799503) {
        switch (env.getDialogId()) {
          case 26:
            if (var == 1) return sendQuestDialog(env, 4080);
          case 1013:
          case 10000:
            if (var == 1) {
              PacketSendUtility.sendPacket(
                  player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 0));
              TeleportService.teleportTo(
                  player, 210050000, 2888.9226f, 359.70108f, 298.73184f, (byte) 56);
              return true;
            }
        }
      }
    } else if (qs.getStatus() != QuestStatus.START) {
      return false;
    }
    if (targetId == 798927) // Versetti
    {
      switch (env.getDialogId()) {
        case 26:
          if (var == 0) return sendQuestDialog(env, 1011);
        case 10000:
          if (var == 0) {
            qs.setQuestVarById(0, var + 1);
            updateQuestStatus(env);
            PacketSendUtility.sendPacket(
                player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
            return true;
          }
      }
    } else if (targetId == 798954) // Tialla
    {
      switch (env.getDialogId()) {
        case 26:
          if (var == 1) return sendQuestDialog(env, 1352);
          else if (var == 8) return sendQuestDialog(env, 3057);
        case 10001:
          if (var == 1) {
            qs.setQuestVarById(0, var + 1);
            updateQuestStatus(env);
            PacketSendUtility.sendPacket(
                player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
            return true;
          }
        case 10255:
          if (var == 8) {
            qs.setQuestVarById(0, 11);
            updateQuestStatus(env);
            PacketSendUtility.sendPacket(
                player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
            return true;
          }
      }
    } else if (targetId == 799022) // Lothas
    {
      switch (env.getDialogId()) {
        case -1:
          if (var == 2) return sendQuestDialog(env, 1779);
          else if (var > 2 && var < 3) return sendQuestDialog(env, 2461);
          break;
        case 26:
          if (var == 3) {
            if (qs.getQuestVarById(1) == 0) return sendQuestDialog(env, 1693);
            else return sendQuestDialog(env, 2375);
          } else if (var == 7) {
            if (player.getInventory().getItemCountByItemId(182206602) == 0)
              return sendQuestDialog(env, 2461);
            else return sendQuestDialog(env, 2716);
          } else if (var == 14) return sendQuestDialog(env, 4336);
        case 10002:
          if (var == 14) {
            qs.setStatus(QuestStatus.REWARD);
            updateQuestStatus(env);
            PacketSendUtility.sendPacket(
                player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
            return true;
          }
        case 10003:
          if (var == 2) {
            qs.setQuestVarById(0, var + 1);
            updateQuestStatus(env);
          }
          PacketSendUtility.sendPacket(
              player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
          return true;
        case 10004:
          if (var == 3 || var < 7) {
            if (player.getPlayerGroup() == null) {
              if (!hasItem(player, 182206627)) {
                if (!ItemService.addItems(
                    player, Collections.singletonList(new QuestItems(182206627, 1)))) return true;
              }
              if (!hasItem(player, 182206628)) {
                if (!ItemService.addItems(
                    player, Collections.singletonList(new QuestItems(182206628, 1)))) return true;
              }
              if (var < 7) {
                qs.setQuestVarById(1, 0); // clear killed Brohums
                qs.setQuestVarById(2, 0); // clear used Tears
                qs.setQuestVarById(0, 5);
                updateQuestStatus(env);
              }
              WorldMapInstance newInstance = InstanceService.getNextAvailableInstance(300190000);
              InstanceService.registerPlayerWithInstance(newInstance, player);
              TeleportService.teleportTo(
                  player,
                  300190000,
                  newInstance.getInstanceId(),
                  198.82353f,
                  221.40387f,
                  1098.4879f,
                  (byte) 41);
              return true;
            } else return sendQuestDialog(env, 2546);
          }
        case 34:
          if (var == 7) {
            if (QuestService.collectItemCheck(env, true)) {
              long itemCount = player.getInventory().getItemCountByItemId(164000099);
              player.getInventory().removeFromBagByItemId(164000099, itemCount);
              qs.setQuestVarById(0, var + 1);
              updateQuestStatus(env);
              PacketSendUtility.sendPacket(
                  player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
              return sendQuestDialog(env, 10000);
            } else return sendQuestDialog(env, 10001);
          }
      }
    } else if (targetId == 730008 && var == 11) // Daminu
    {
      switch (env.getDialogId()) {
        case 26:
          return sendQuestDialog(env, 3398);
        case 10007:
          qs.setQuestVarById(0, var + 1);
          updateQuestStatus(env);
          PacketSendUtility.sendPacket(
              player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
          return true;
      }
    } else if (targetId == 730019 && var == 12) // Lodas
    {
      switch (env.getDialogId()) {
        case 26:
          return sendQuestDialog(env, 3739);
        case 10008:
          qs.setQuestVarById(0, var + 1);
          updateQuestStatus(env);
          PacketSendUtility.sendPacket(
              player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
          return true;
      }
    } else if (targetId == 730024 && var == 13) // Trajanus
    {
      switch (env.getDialogId()) {
        case 26:
          return sendQuestDialog(env, 4080);
        case 10009:
          qs.setQuestVarById(0, var + 1);
          updateQuestStatus(env);
          PacketSendUtility.sendPacket(
              player, new SM_DIALOG_WINDOW(env.getVisibleObject().getObjectId(), 10));
          return true;
      }
    }

    return false;
  }