Package lineage2.gameserver.network.clientpackets

Source Code of lineage2.gameserver.network.clientpackets.EnterWorld

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package lineage2.gameserver.network.clientpackets;

import java.util.Calendar;

import lineage2.gameserver.Announcements;
import lineage2.gameserver.Config;
import lineage2.gameserver.dao.MailDAO;
import lineage2.gameserver.data.StringHolder;
import lineage2.gameserver.data.xml.holder.ResidenceHolder;
import lineage2.gameserver.instancemanager.AwakingManager;
import lineage2.gameserver.instancemanager.CoupleManager;
import lineage2.gameserver.instancemanager.CursedWeaponsManager;
import lineage2.gameserver.instancemanager.PetitionManager;
import lineage2.gameserver.instancemanager.PlayerMessageStack;
import lineage2.gameserver.instancemanager.QuestManager;
import lineage2.gameserver.listener.actor.player.OnAnswerListener;
import lineage2.gameserver.listener.actor.player.impl.ReviveAnswerListener;
import lineage2.gameserver.model.Creature;
import lineage2.gameserver.model.Effect;
import lineage2.gameserver.model.GameObjectsStorage;
import lineage2.gameserver.model.Player;
import lineage2.gameserver.model.Skill;
import lineage2.gameserver.model.SubClass;
import lineage2.gameserver.model.Summon;
import lineage2.gameserver.model.World;
import lineage2.gameserver.model.base.InvisibleType;
import lineage2.gameserver.model.entity.events.impl.ClanHallAuctionEvent;
import lineage2.gameserver.model.entity.residence.Castle;
import lineage2.gameserver.model.entity.residence.ClanHall;
import lineage2.gameserver.model.items.ItemInstance;
import lineage2.gameserver.model.mail.Mail;
import lineage2.gameserver.model.pledge.Clan;
import lineage2.gameserver.model.pledge.SubUnit;
import lineage2.gameserver.model.pledge.UnitMember;
import lineage2.gameserver.model.quest.Quest;
import lineage2.gameserver.network.GameClient;
import lineage2.gameserver.network.serverpackets.ChangeWaitType;
import lineage2.gameserver.network.serverpackets.ClientSetTime;
import lineage2.gameserver.network.serverpackets.ConfirmDlg;
import lineage2.gameserver.network.serverpackets.Die;
import lineage2.gameserver.network.serverpackets.EtcStatusUpdate;
import lineage2.gameserver.network.serverpackets.ExAcquirableSkillListByClass;
import lineage2.gameserver.network.serverpackets.ExAutoSoulShot;
import lineage2.gameserver.network.serverpackets.ExBR_PremiumState;
import lineage2.gameserver.network.serverpackets.ExBasicActionList;
import lineage2.gameserver.network.serverpackets.ExCastleState;
import lineage2.gameserver.network.serverpackets.ExChangeMPCost;
import lineage2.gameserver.network.serverpackets.ExGoodsInventoryChangedNotify;
import lineage2.gameserver.network.serverpackets.ExMPCCOpen;
import lineage2.gameserver.network.serverpackets.ExNoticePostArrived;
import lineage2.gameserver.network.serverpackets.ExNotifyPremiumItem;
import lineage2.gameserver.network.serverpackets.ExPCCafePointInfo;
import lineage2.gameserver.network.serverpackets.ExReceiveShowPostFriend;
import lineage2.gameserver.network.serverpackets.ExSetCompassZoneCode;
import lineage2.gameserver.network.serverpackets.ExShowUsmVideo;
import lineage2.gameserver.network.serverpackets.ExStorageMaxCount;
import lineage2.gameserver.network.serverpackets.ExSubjobInfo;
import lineage2.gameserver.network.serverpackets.ExTutorialList;
import lineage2.gameserver.network.serverpackets.ExVitalityEffectInfo;
import lineage2.gameserver.network.serverpackets.ExWaitWaitingSubStituteInfo;
import lineage2.gameserver.network.serverpackets.HennaInfo;
import lineage2.gameserver.network.serverpackets.L2FriendList;
import lineage2.gameserver.network.serverpackets.L2GameServerPacket;
import lineage2.gameserver.network.serverpackets.MagicSkillLaunched;
import lineage2.gameserver.network.serverpackets.MagicSkillUse;
import lineage2.gameserver.network.serverpackets.PartySmallWindowAll;
import lineage2.gameserver.network.serverpackets.PartySpelled;
import lineage2.gameserver.network.serverpackets.PetInfo;
import lineage2.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import lineage2.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import lineage2.gameserver.network.serverpackets.PledgeSkillList;
import lineage2.gameserver.network.serverpackets.PrivateStoreMsgBuy;
import lineage2.gameserver.network.serverpackets.PrivateStoreMsgSell;
import lineage2.gameserver.network.serverpackets.QuestList;
import lineage2.gameserver.network.serverpackets.RecipeShopMsg;
import lineage2.gameserver.network.serverpackets.RelationChanged;
import lineage2.gameserver.network.serverpackets.Ride;
import lineage2.gameserver.network.serverpackets.SSQInfo;
import lineage2.gameserver.network.serverpackets.ShortCutInit;
import lineage2.gameserver.network.serverpackets.SkillCoolTime;
import lineage2.gameserver.network.serverpackets.SkillList;
import lineage2.gameserver.network.serverpackets.SystemMessage2;
import lineage2.gameserver.network.serverpackets.components.SystemMsg;
import lineage2.gameserver.skills.AbnormalEffect;
import lineage2.gameserver.tables.SkillTable;
import lineage2.gameserver.templates.item.ItemTemplate;
import lineage2.gameserver.utils.GameStats;
import lineage2.gameserver.utils.ItemFunctions;
import lineage2.gameserver.utils.TradeHelper;

import org.apache.commons.lang3.tuple.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @author Mobius
* @version $Revision: 1.0 $
*/
public class EnterWorld extends L2GameClientPacket
{
  /**
   * Field _lock.
   */
  private static final Object _lock = new Object();
  /**
   * Field _log.
   */
  private static final Logger _log = LoggerFactory.getLogger(EnterWorld.class);
 
  /**
   * Method readImpl.
   */
  @Override
  protected void readImpl()
  {
  }
 
  /**
   * Method runImpl.
   */
  @Override
  protected void runImpl()
  {
    GameClient client = getClient();
    Player activeChar = client.getActiveChar();
    if (activeChar == null)
    {
      client.closeNow(false);
      return;
    }
    int MyObjectId = activeChar.getObjectId();
    Long MyStoreId = activeChar.getStoredId();
    for(Castle castle : ResidenceHolder.getInstance().getResidenceList(Castle.class))
      {
        activeChar.sendPacket(new ExCastleState(castle));
      }
    synchronized (_lock)
    {

      for (Player cha : GameObjectsStorage.getAllPlayersForIterate())
      {
        if (MyStoreId.equals(cha.getStoredId()))
        {
          continue;
        }
        try
        {
          if (cha.getObjectId() == MyObjectId)
          {
            _log.warn("Double EnterWorld for char: " + activeChar.getName());
            cha.kick();
          }
        }
        catch (Exception e)
        {
          _log.error("", e);
        }
      }
    }
    GameStats.incrementPlayerEnterGame();
    boolean first = activeChar.entering;
    if (first)
    {
      activeChar.setOnlineStatus(true);
      if (activeChar.getPlayerAccess().GodMode && !Config.SHOW_GM_LOGIN)
      {
        activeChar.setInvisibleType(InvisibleType.NORMAL);
      }
      activeChar.setNonAggroTime(Long.MAX_VALUE);
      activeChar.spawnMe();
      if (activeChar.isInStoreMode())
      {
        if (!TradeHelper.checksIfCanOpenStore(activeChar, activeChar.getPrivateStoreType()))
        {
          activeChar.setPrivateStoreType(Player.STORE_PRIVATE_NONE);
          activeChar.standUp();
          activeChar.broadcastCharInfo();
        }
      }
      activeChar.setRunning();
      activeChar.standUp();
      activeChar.startTimers();
    }
    activeChar.sendPacket(new ExBR_PremiumState(activeChar, activeChar.hasBonus()));
   
    activeChar.getMacroses().sendUpdate(0x01, 0, true);
        activeChar.sendPacket(new SSQInfo(), new HennaInfo(activeChar));
    activeChar.sendItemList(false);
    activeChar.sendPacket(new ShortCutInit(activeChar));
        activeChar.sendPacket(new ShortCutInit(activeChar), new SkillList(activeChar), new SkillCoolTime(activeChar));
    activeChar.sendPacket(new SkillCoolTime(activeChar));
    //activeChar.sendPacket(new ExCastleState(_castle));
        activeChar.sendPacket(new ExVitalityEffectInfo(activeChar));
    for(Castle castle : ResidenceHolder.getInstance().getResidenceList(Castle.class))
    {
      activeChar.sendPacket(new ExCastleState(castle));
    }
    activeChar.sendPacket(SystemMsg.WELCOME_TO_THE_WORLD_OF_LINEAGE_II);
    Announcements.getInstance().showAnnouncements(activeChar);
    if (first)
    {
      activeChar.getListeners().onEnter();
    }
    if (first && (activeChar.getCreateTime() > 0))
    {
      Calendar create = Calendar.getInstance();
      create.setTimeInMillis(activeChar.getCreateTime());
      Calendar now = Calendar.getInstance();
      int day = create.get(Calendar.DAY_OF_MONTH);
      if ((create.get(Calendar.MONTH) == Calendar.FEBRUARY) && (day == 29))
      {
        day = 28;
      }
      int myBirthdayReceiveYear = activeChar.getVarInt(Player.MY_BIRTHDAY_RECEIVE_YEAR, 0);
      if ((create.get(Calendar.MONTH) == now.get(Calendar.MONTH)) && (create.get(Calendar.DAY_OF_MONTH) == day))
      {
        if (((myBirthdayReceiveYear == 0) && (create.get(Calendar.YEAR) != now.get(Calendar.YEAR))) || ((myBirthdayReceiveYear > 0) && (myBirthdayReceiveYear != now.get(Calendar.YEAR))))
        {
          Mail mail = new Mail();
          mail.setSenderId(1);
          mail.setSenderName(StringHolder.getInstance().getNotNull(activeChar, "birthday.npc"));
          mail.setReceiverId(activeChar.getObjectId());
          mail.setReceiverName(activeChar.getName());
          mail.setTopic(StringHolder.getInstance().getNotNull(activeChar, "birthday.title"));
          mail.setBody(StringHolder.getInstance().getNotNull(activeChar, "birthday.text"));
          ItemInstance item = ItemFunctions.createItem(21169);
          item.setLocation(ItemInstance.ItemLocation.MAIL);
          item.setCount(1L);
          item.save();
          mail.addAttachment(item);
          mail.setUnread(true);
          mail.setType(Mail.SenderType.BIRTHDAY);
          mail.setExpireTime((720 * 3600) + (int) (System.currentTimeMillis() / 1000L));
          mail.save();
          activeChar.setVar(Player.MY_BIRTHDAY_RECEIVE_YEAR, String.valueOf(now.get(Calendar.YEAR)), -1);
        }
      }
    }
    if (activeChar.getClan() != null)
    {
      notifyClanMembers(activeChar);
      activeChar.sendPacket(activeChar.getClan().listAll());
      activeChar.sendPacket(new PledgeShowInfoUpdate(activeChar.getClan()), new PledgeSkillList(activeChar.getClan()));
    }
    if (first && Config.ALLOW_WEDDING)
    {
      CoupleManager.getInstance().engage(activeChar);
      CoupleManager.getInstance().notifyPartner(activeChar);
    }
    if (first)
    {
      activeChar.getFriendList().notifyFriends(true);
      loadTutorial(activeChar);
      activeChar.restoreDisableSkills();
      activeChar.mentoringLoginConditions();
    }
    sendPacket(new L2FriendList(activeChar), new ExStorageMaxCount(activeChar), new QuestList(activeChar), new ExBasicActionList(activeChar), new EtcStatusUpdate(activeChar));
    activeChar.checkHpMessages(activeChar.getMaxHp(), activeChar.getCurrentHp());
    activeChar.checkDayNightMessages();
    if (Config.PETITIONING_ALLOWED)
    {
      PetitionManager.getInstance().checkPetitionMessages(activeChar);
    }
    if (!first)
    {
      if (activeChar.isCastingNow())
      {
        Creature castingTarget = activeChar.getCastingTarget();
        Skill castingSkill = activeChar.getCastingSkill();
        long animationEndTime = activeChar.getAnimationEndTime();
        if ((castingSkill != null) && (castingTarget != null) && castingTarget.isCreature() && (activeChar.getAnimationEndTime() > 0))
        {
          sendPacket(new MagicSkillUse(activeChar, castingTarget, castingSkill.getId(), castingSkill.getLevel(), (int) (animationEndTime - System.currentTimeMillis()), 0));
        }
      }
      if (activeChar.isInBoat())
      {
        activeChar.sendPacket(activeChar.getBoat().getOnPacket(activeChar, activeChar.getInBoatPosition()));
      }
      if (activeChar.isMoving || activeChar.isFollow)
      {
        sendPacket(activeChar.movePacket());
      }
      if (activeChar.getMountNpcId() != 0)
      {
        sendPacket(new Ride(activeChar));
      }
      if (activeChar.isFishing())
      {
        activeChar.stopFishing();
      }
    }
    activeChar.entering = false;
    activeChar.sendUserInfo();
    if (activeChar.isSitting())
    {
      activeChar.sendPacket(new ChangeWaitType(activeChar, ChangeWaitType.WT_SITTING));
    }
    if (activeChar.getPrivateStoreType() != Player.STORE_PRIVATE_NONE)
    {
      if (activeChar.getPrivateStoreType() == Player.STORE_PRIVATE_BUY)
      {
        sendPacket(new PrivateStoreMsgBuy(activeChar));
      }
      else if ((activeChar.getPrivateStoreType() == Player.STORE_PRIVATE_SELL) || (activeChar.getPrivateStoreType() == Player.STORE_PRIVATE_SELL_PACKAGE))
      {
        sendPacket(new PrivateStoreMsgSell(activeChar));
      }
      else if (activeChar.getPrivateStoreType() == Player.STORE_PRIVATE_MANUFACTURE)
      {
        sendPacket(new RecipeShopMsg(activeChar));
      }
    }
    if (activeChar.isDead())
    {
      sendPacket(new Die(activeChar));
    }
    activeChar.unsetVar("offline");
    activeChar.sendActionFailed();
    if (first && activeChar.isGM() && Config.SAVE_GM_EFFECTS && activeChar.getPlayerAccess().CanUseGMCommand)
    {
      if (activeChar.getVarB("gm_silence"))
      {
        activeChar.setMessageRefusal(true);
        activeChar.sendPacket(SystemMsg.MESSAGE_REFUSAL_MODE);
      }
      if (activeChar.getVarB("gm_invul"))
      {
        activeChar.setIsInvul(true);
        activeChar.startAbnormalEffect(AbnormalEffect.S_INVINCIBLE);
        activeChar.sendMessage(activeChar.getName() + " is now immortal.");
      }
      try
      {
        int var_gmspeed = Integer.parseInt(activeChar.getVar("gm_gmspeed"));
        if ((var_gmspeed >= 1) && (var_gmspeed <= 4))
        {
          activeChar.doCast(SkillTable.getInstance().getInfo(7029, var_gmspeed), activeChar, true);
        }
      }
      catch (Exception E)
      {
      }
    }
    PlayerMessageStack.getInstance().CheckMessages(activeChar);
    sendPacket(ClientSetTime.STATIC, new ExSetCompassZoneCode(activeChar));
    Pair<Integer, OnAnswerListener> entry = activeChar.getAskListener(false);
    if ((entry != null) && (entry.getValue() instanceof ReviveAnswerListener))
    {
      sendPacket(new ConfirmDlg(SystemMsg.C1_IS_MAKING_AN_ATTEMPT_TO_RESURRECT_YOU_IF_YOU_CHOOSE_THIS_PATH_S2_EXPERIENCE_WILL_BE_RETURNED_FOR_YOU, 0).addString("Other player").addString("some"));
    }
    if (activeChar.isCursedWeaponEquipped())
    {
      CursedWeaponsManager.getInstance().showUsageTime(activeChar, activeChar.getCursedWeaponEquippedId());
    }
    if (!first)
    {
      if (activeChar.isInObserverMode())
      {
        if (activeChar.getObserverMode() == Player.OBSERVER_LEAVING)
        {
          activeChar.returnFromObserverMode();
        }
        else if (activeChar.getOlympiadObserveGame() != null)
        {
          activeChar.leaveOlympiadObserverMode(true);
        }
        else
        {
          activeChar.leaveObserverMode();
        }
      }
      else if (activeChar.isVisible())
      {
        World.showObjectsToPlayer(activeChar);
      }
      for (Summon summon : activeChar.getSummonList())
      {
        sendPacket(new PetInfo(summon));
      }
      if (activeChar.isInParty())
      {
        sendPacket(new PartySmallWindowAll(activeChar.getParty(), activeChar));
        for (Player member : activeChar.getParty().getPartyMembers())
        {
          if (member != activeChar)
          {
            sendPacket(new PartySpelled(member, true));
            for (Summon memberPet : member.getSummonList())
            {
              sendPacket(new PartySpelled(memberPet, true));
            }
            sendPacket(RelationChanged.update(activeChar, member, activeChar));
          }
        }
        if (activeChar.getParty().isInCommandChannel())
        {
          sendPacket(ExMPCCOpen.STATIC);
        }
      }
      for (int shotId : activeChar.getAutoSoulShot())
      {
        sendPacket(new ExAutoSoulShot(shotId, true));
      }
      for (Effect e : activeChar.getEffectList().getAllFirstEffects())
      {
        if (e.getSkill().isToggle())
        {
          sendPacket(new MagicSkillLaunched(activeChar.getObjectId(), e.getSkill().getId(), e.getSkill().getLevel(), activeChar));
        }
      }
      activeChar.broadcastCharInfo();
    }
    else
    {
      activeChar.sendUserInfo();
    }
    activeChar.updateEffectIcons();
    activeChar.setCurrentHpMp(activeChar.getActiveSubClass().getlogOnHp(),activeChar.getActiveSubClass().getlogOnMp());
    activeChar.setCurrentCp(activeChar.getActiveSubClass().getlogOnCp());
    activeChar.updateStats();   
    if (Config.ALT_PCBANG_POINTS_ENABLED)
    {
      activeChar.sendPacket(new ExPCCafePointInfo(activeChar, 0, 1, 2, 12));
    }
    if (!activeChar.getPremiumItemList().isEmpty())
    {
      activeChar.sendPacket(Config.GOODS_INVENTORY_ENABLED ? ExGoodsInventoryChangedNotify.STATIC : ExNotifyPremiumItem.STATIC);
    }
    if (activeChar.getVarB("HeroPeriod") && Config.SERVICES_HERO_SELL_ENABLED)
    {
      activeChar.setHero(activeChar);
    }
    activeChar.sendVoteSystemInfo();
    activeChar.sendPacket(new ExReceiveShowPostFriend(activeChar));
    activeChar.sendPacket(new ExSubjobInfo(activeChar.getPlayer(), false));
    activeChar.sendPacket(new ExVitalityEffectInfo(activeChar));
    activeChar.sendPacket(new ExTutorialList());
    activeChar.sendPacket(new ExWaitWaitingSubStituteInfo(true));
    for (Effect effect : activeChar.getEffectList().getAllEffects())
    {
      if (effect.isInUse())
      {
        if (effect.getSkill().getId() == 10022)
        {
          activeChar.setIsIgnoringDeath(true);
        }
      }
    }
    if(Config.ALT_GAME_REMOVE_PREVIOUS_CERTIFICATES)
    {
      Skill [] allSkill = activeChar.getAllSkillsArray();
      int totalCertificates =  0;
      for(Skill skl : allSkill)
      {
        if(skl.getId() >= 1573 && skl.getId() <= 1581)
        {
          totalCertificates += skl.getLevel();
          activeChar.removeSkill(skl,true);
        }
      }
      if(totalCertificates > 0)
      {
        activeChar.getInventory().addItem(10280, totalCertificates);
        _log.info("EnterWorld: Player - " + activeChar.getName() + " - Has received " + totalCertificates + " by previous skill certificate deletion." );
        for(SubClass sc : activeChar.getSubClassList().values())
        {
          sc.setCertification(0);
          activeChar.store(true);
        }
      }
    }
    activeChar.sendPacket(new ExAcquirableSkillListByClass(activeChar));
    activeChar.setPartySearchStatus(true);
    activeChar.sendPacket(new ExWaitWaitingSubStituteInfo(true));
    checkNewMail(activeChar);
    activeChar.sendPacket(new ExChangeMPCost(1, -3));
    activeChar.sendPacket(new ExChangeMPCost(1, -5));
    activeChar.sendPacket(new ExChangeMPCost(0, 20));
    activeChar.sendPacket(new ExChangeMPCost(1, -10));
    activeChar.sendPacket(new ExChangeMPCost(3, -20));
    activeChar.sendPacket(new ExChangeMPCost(22, -20));
    if (activeChar.getVar("startMovie") == null)
    {
      activeChar.setVar("startMovie", "1", -1);
      activeChar.sendPacket(new ExShowUsmVideo(ExShowUsmVideo.GD1_INTRO));
    }
    if ((activeChar.getLevel() > 84) && !activeChar.isAwaking())
    {
      AwakingManager.getInstance().SendReqToStartQuest(activeChar);
    }
    if(activeChar.isAwaking()) //If the characters returns to Main, or dual Subclass and Delete Skills prof are active, do check of Correct skills
    {
      if(Config.ALT_CHECK_SKILLS_AWAKENING)
      {
        AwakingManager.getInstance().checkAwakenPlayerSkills(activeChar);
      }
    }
  }
 
  /**
   * Method notifyClanMembers.
   * @param activeChar Player
   */
  private static void notifyClanMembers(Player activeChar)
  {
    Clan clan = activeChar.getClan();
    SubUnit subUnit = activeChar.getSubUnit();
    if ((clan == null) || (subUnit == null))
    {
      return;
    }
    UnitMember member = subUnit.getUnitMember(activeChar.getObjectId());
    if (member == null)
    {
      return;
    }
    member.setPlayerInstance(activeChar, false);
    int sponsor = activeChar.getSponsor();
    int apprentice = activeChar.getApprentice();
    L2GameServerPacket msg = new SystemMessage2(SystemMsg.CLAN_MEMBER_S1_HAS_LOGGED_INTO_GAME).addName(activeChar);
    PledgeShowMemberListUpdate memberUpdate = new PledgeShowMemberListUpdate(activeChar);
    for (Player clanMember : clan.getOnlineMembers(activeChar.getObjectId()))
    {
      clanMember.sendPacket(memberUpdate);
      if (clanMember.getObjectId() == sponsor)
      {
        clanMember.sendPacket(new SystemMessage2(SystemMsg.YOUR_APPRENTICE_C1_HAS_LOGGED_OUT).addName(activeChar));
      }
      else if (clanMember.getObjectId() == apprentice)
      {
        clanMember.sendPacket(new SystemMessage2(SystemMsg.YOUR_SPONSOR_C1_HAS_LOGGED_IN).addName(activeChar));
      }
      else
      {
        clanMember.sendPacket(msg);
      }
    }
    activeChar.getClan().startNotifyClanEnterWorld(activeChar);
    if (!activeChar.isClanLeader())
    {
      return;
    }
    ClanHall clanHall = clan.getHasHideout() > 0 ? ResidenceHolder.getInstance().getResidence(ClanHall.class, clan.getHasHideout()) : null;
    if ((clanHall == null) || (clanHall.getAuctionLength() != 0))
    {
      return;
    }
    if (clanHall.getSiegeEvent().getClass() != ClanHallAuctionEvent.class)
    {
      return;
    }
    if (clan.getWarehouse().getCountOf(ItemTemplate.ITEM_ID_ADENA) < clanHall.getRentalFee())
    {
      activeChar.sendPacket(new SystemMessage2(SystemMsg.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_ME_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW).addLong(clanHall.getRentalFee()));
    }
  }
 
  /**
   * Method loadTutorial.
   * @param player Player
   */
  private void loadTutorial(Player player)
  {
    Quest q = QuestManager.getQuest(255);
    if (q != null)
    {
      player.processQuestEvent(q.getName(), "UC", null);
    }
  }
 
  /**
   * Method checkNewMail.
   * @param activeChar Player
   */
  private void checkNewMail(Player activeChar)
  {
    for (Mail mail : MailDAO.getInstance().getReceivedMailByOwnerId(activeChar.getObjectId()))
    {
      if (mail.isUnread())
      {
        sendPacket(ExNoticePostArrived.STATIC_FALSE);
        break;
      }
    }
  }
}
TOP

Related Classes of lineage2.gameserver.network.clientpackets.EnterWorld

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.