Файл:
Скрытый текст// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov Date: 06.03.2012 7:19:09// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: EnterWorld.java
package l2dot.gameserver.clientpackets;
import java.sql.*;
import java.util.*;
import java.util.logging.Logger;
import javolution.util.FastList;
import l2dot.Config;
import l2dot.gameserver.*;
import l2dot.gameserver.ai.CtrlIntention;
import l2dot.gameserver.ai.L2CharacterAI;
import l2dot.gameserver.cache.HtmCache;
import l2dot.gameserver.communitybbs.Manager.RegionBBSManager;
import l2dot.gameserver.database.L2DatabaseFactory;
import l2dot.gameserver.datatables.*;
import l2dot.gameserver.engine.Heroes;
import l2dot.gameserver.handler.AdminCommandHandler;
import l2dot.gameserver.instancemanager.*;
import l2dot.gameserver.model.*;
import l2dot.gameserver.model.actor.appearance.PcAppearance;
import l2dot.gameserver.model.actor.instance.L2ClassMasterInstance;
import l2dot.gameserver.model.actor.instance.L2PcInstance;
import l2dot.gameserver.model.base.*;
import l2dot.gameserver.model.entity.*;
import l2dot.gameserver.model.entity.events.CTF;
import l2dot.gameserver.model.quest.Quest;
import l2dot.gameserver.model.quest.QuestState;
import l2dot.gameserver.network.L2GameClient;
import l2dot.gameserver.network.SystemMessageId;
import l2dot.gameserver.serverpackets.*;
import l2dot.gameserver.util.FloodProtector;
// Referenced classes of package l2dot.gameserver.clientpackets:
// L2GameClientPacket
public class EnterWorld extends L2GameClientPacket
{
public EnterWorld()
{
}
public TaskPriority getPriority()
{
return TaskPriority.PR_URGENT;
}
protected void readImpl()
{
}
protected void runImpl()
{
L2PcInstance activeChar = ((L2GameClient)getClient()).getActiveChar();
if(activeChar == null)
{
_log.warning("EnterWorld failed! activeChar is null...");
((L2GameClient)getClient()).closeNow();
return;
}
FloodProtector.getInstance().registerNewPlayer(activeChar.getObjectId());
if(L2World.getInstance().findObject(activeChar.getObjectId()) != null && Config.DEBUG)
_log.warning((new StringBuilder()).append("User already exist in OID map! User ").append(activeChar.getName()).append(" is character clone").toString());
if(activeChar.isGM())
{
if(Config.GM_STARTUP_INVULNERABLE && (!Config.ALT_PRIVILEGES_ADMIN && activeChar.getAccessLevel() >= Config.GM_GODMODE || Config.ALT_PRIVILEGES_ADMIN && AdminCommandHandler.getInstance().checkPrivileges(activeChar, "admin_invul")))
activeChar.setIsInvul(true);
if(Config.GM_STARTUP_INVISIBLE && (!Config.ALT_PRIVILEGES_ADMIN && activeChar.getAccessLevel() >= Config.GM_GODMODE || Config.ALT_PRIVILEGES_ADMIN && AdminCommandHandler.getInstance().checkPrivileges(activeChar, "admin_invisible")))
activeChar.getAppearance().setInvisible();
if(Config.GM_STARTUP_SILENCE && (!Config.ALT_PRIVILEGES_ADMIN && activeChar.getAccessLevel() >= Config.GM_MENU || Config.ALT_PRIVILEGES_ADMIN && AdminCommandHandler.getInstance().checkPrivileges(activeChar, "admin_silence")))
activeChar.setMessageRefusal(true);
if(Config.GM_STARTUP_AUTO_LIST && (!Config.ALT_PRIVILEGES_ADMIN && activeChar.getAccessLevel() >= Config.GM_MENU || Config.ALT_PRIVILEGES_ADMIN && AdminCommandHandler.getInstance().checkPrivileges(activeChar, "admin_gmliston")))
GmListTable.getInstance().addGm(activeChar, false);
else
GmListTable.getInstance().addGm(activeChar, true);
}
if(Hero.getInstance().getHeroes() != null && Hero.getInstance().getHeroes().containsKey(Integer.valueOf(activeChar.getObjectI
d())))
activeChar.setHero(true);
setPledgeClass(activeChar);
Heroes.getInstance().onEnterWorld(activeChar);
sendPacket(new UserInfo(activeChar));
activeChar.getMacroses().sendUpdate();
sendPacket(new ItemList(activeChar, false));
if(Config.GAMEGUARD_ENFORCE)
{
GameGuardQuery ggq = new GameGuardQuery();
activeChar.sendPacket(ggq);
}
sendPacket(new ShortCutInit(activeChar));
activeChar.sendSkillList();
activeChar.getInventory().reloadEquippedItems();
activeChar.sendPacket(new HennaInfo(activeChar));
Quest.playerEnter(activeChar);
activeChar.sendPacket(new QuestList());
loadTutorial(activeChar);
if(Config.PLAYER_SPAWN_PROTECTION > 0)
activeChar.setProtection(true);
activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
activeChar.broadcastUserInfo();
if(activeChar.getClan() != null)
{
Iterator i$ = SiegeManager.getInstance().getSieges().iterator();
do
{
if(!i$.hasNext())
break;
Siege siege = (Siege)i$.next();
if(siege.getIsInProgress())
if(siege.checkIsAttacker(activeChar.getClan()))
activeChar.setSiegeState((byte)1);
else
if(siege.checkIsDefender(activeChar.getClan()))
activeChar.setSiegeState((byte)2);
} while(true);
}
if(activeChar.getZ() < -15000 || activeChar.getZ() > 15000)
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
activeChar.setTarget(activeChar);
activeChar.teleToLocation(l2dot.gameserver.datatables.MapRegions.TeleportWhereTy
pe.Town);
}
if(L2Event.active && L2Event.connectionLossData.containsKey(activeChar.getName()) && L2Event.isOnEvent(activeChar))
L2Event.restoreChar(activeChar);
else
if(L2Event.connectionLossData.containsKey(activeChar.getName()))
L2Event.restoreAndTeleChar(activeChar);
if(Config.pccafe_event)
activeChar.showPcCafeWnd();
if(SevenSigns.getInstance().isSealValidationPeriod())
sendPacket(new SignsSky());
if(Config.STORE_SKILL_COOLTIME)
activeChar.restoreEffects();
CharSchemesTable.getInstance().onPlayerLogin(activeChar.getObjectId());
if(Config.L2JMOD_ALLOW_WEDDING)
{
engage(activeChar);
notifyPartner(activeChar, activeChar.getPartnerId());
CoupleManager.getInstance().checkCouple(activeChar);
}
if(activeChar.getAllEffects() != null)
{
L2Effect arr$[] = activeChar.getAllEffects();
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
L2Effect e = arr$[i$];
if(e.getEffectType() == l2dot.gameserver.model.L2Effect.EffectType.HEAL_OVER_TIME)
{
activeChar.stopEffects(l2dot.gameserver.model.L2Effect.EffectType.HEAL_OVER_TIME
);
activeChar.removeEffect(e);
}
if(e.getEffectType() == l2dot.gameserver.model.L2Effect.EffectType.MANA_HEAL_OVER_TIME)
{
activeChar.stopEffects(l2dot.gameserver.model.L2Effect.EffectType.MANA_HEAL_OVER
_TIME);
activeChar.removeEffect(e);
}
if(e.getEffectType() == l2dot.gameserver.model.L2Effect.EffectType.COMBAT_POINT_HEAL_OVER_TIME)
{
activeChar.stopEffects(l2dot.gameserver.model.L2Effect.EffectType.COMBAT_POINT_H
EAL_OVER_TIME);
activeChar.removeEffect(e);
}
if(e.getEffectType() == l2dot.gameserver.model.L2Effect.EffectType.CHARGE)
e.exit();
}
}
activeChar.updateEffectIcons();
activeChar.getInventory().updateDatabase();
activeChar.sendPacket(new EtcStatusUpdate(activeChar));
ExStorageMaxCount esmc = new ExStorageMaxCount(activeChar);
activeChar.sendPacket(esmc);
sendPacket(new FriendList(activeChar));
sendPacket(new ItemList(activeChar, false));
L2ItemInstance arr$[] = activeChar.getInventory().getAugmentedItems();
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
L2ItemInstance temp = arr$[i$];
if(temp != null && temp.isEquipped())
temp.getAugmentation().applyBoni(activeChar);
}
if(Config.CHECK_SKILLS_ON_ENTER && !Config.ALT_GAME_SKILL_LEARN)
activeChar.checkAllowedSkills();
CrownManager.getInstance().checkCrowns(activeChar);
SystemMessage sm = new SystemMessage(SystemMessageId.WELCOME_TO_LINEAGE);
sendPacket(sm);
sm = null;
sendPacket(new ClientSetTime());
SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar);
Announcements.getInstance().showAnnouncements(activeChar);
if(Config.SERVER_NEWS)
{
String serverNews = HtmCache.getInstance().getHtm("data/html/welcome.htm");
if(serverNews != null)
sendPacket(new NpcHtmlMessage(1, serverNews));
}
PetitionManager.getInstance().checkPetitionMessages(activeChar);
if(activeChar.getClanId() != 0 && activeChar.getClan() != null)
{
sendPacket(new PledgeShowMemberListAll(activeChar.getClan(), activeChar));
sendPacket(new PledgeStatusChanged(activeChar.getClan()));
}
if(Config.ONLINE_PLAYERS_AT_STARTUP)
activeChar.sendMessage((new StringBuilder()).append("\u0418\u0433\u0440\u043E\u043A\u043E\u0432 \u043E\u043D-\u043B\u0430\u0439\u043D: ").append(L2World.getInstance().getAllPlayers().size()).toString());
if(Config.COMMAND_INFO_MESSAGE)
{
activeChar.sendMessage("\u0412\u0435\u0440\u0441\u0438\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u0430: v. 2.7");
activeChar.sendMessage("\u041E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0430\u0439\u0442: http://l2dot.ru");
activeChar.sendMessage("\u041E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u043E\u0440\u0443\u043C: http://community.l2dot.ru");
}
if(activeChar.isCharViP() && activeChar.getCharViP() >= Config.LEVEL_CHAR_VIP_COLOR_ENABLED && Config.CHAR_VIP_COLOR_ENABLED)
activeChar.getAppearance().setNameColor(Config.CHAR_VIP_COLOR);
if(Config.ALLOW_WATER)
activeChar.checkWaterState();
activeChar.setOnlineStatus(true);
if(activeChar.isAlikeDead())
sendPacket(new Die(activeChar));
notifyFriends(activeChar, true);
notifyClanMembers(activeChar);
notifySponsorOrApprentice(activeChar);
activeChar.onPlayerEnter();
if(Config.CHAR_VIP_ANONS_LOGIN && activeChar.getCharViP() >= Config.LEVEL_CHAR_VIP_ANONS_LOGIN)
Announcements.getInstance().announceToAll((new StringBuilder()).append("ViP \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u0436 ").append(activeChar.getName()).append(" \u0432\u0445\u043E\u0434\u0438\u0442 \u0432 \u0438\u0433\u0440\u0443, \u043F\u043E\u043F\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043C.").toString());
if(Olympiad.getInstance().playerInStadia(activeChar))
{
activeChar.teleToLocation(l2dot.gameserver.datatables.MapRegions.TeleportWhereTy
pe.Town);
activeChar.sendMessage("\u0412\u044B \u0431\u044B\u043B\u0438 \u0442\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u0433\u043E\u0440\u043E\u0434 \u0442\u0430\u043A \u043A\u0430\u043A \u0432\u044B \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u0441\u0442\u0430\u0434\u0438\u043E\u043D\u0435(\u041E\u043B\u0438\u043C\u043F\u0438\u0430\u0434\u044B, \u0447\u0435\u0433\u043E \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C)!");
}
if(DimensionalRiftManager.getInstance().checkIfInRiftZone(activeChar.getX(), activeChar.getY(), activeChar.getZ(), false))
DimensionalRiftManager.getInstance().teleportToWaitingRoom(activeChar);
if(activeChar.getClanJoinExpiryTime() > System.currentTimeMillis())
activeChar.sendPacket(new SystemMessage(SystemMessageId.CLAN_MEMBERSHIP_TERMINATED));
L2PcInstance _tmp = activeChar;
L2PcInstance _tmp1 = activeChar;
activeChar.setCurrentHpMp(L2PcInstance.curHp, L2PcInstance.curMp);
L2PcInstance _tmp2 = activeChar;
activeChar.setCurrentCp(L2PcInstance.curCp);
if(activeChar.getClan() != null)
{
activeChar.sendPacket(new PledgeSkillList(activeChar.getClan()));
ClanHall clanHall = ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan());
if(clanHall != null && !clanHall.getPaid())
activeChar.sendPacket(new SystemMessage(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEAS
E_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW));
}
if(Config.LEVEL_ON_ENTER > 0 && activeChar.getLevel() <= 1)
{
byte byte0 = Config.LEVEL_ON_ENTER;
if(byte0 >= 1 && byte0 <= 81)
activeChar.addExpAndSp(Experience.LEVEL[byte0], Config.SP_ON_ENTER);
}
if(!activeChar.isGM() && activeChar.getSiegeState() < 2 && activeChar.isInsideZone(4))
{
activeChar.teleToLocation(l2dot.gameserver.datatables.MapRegions.TeleportWhereTy
pe.Town);
activeChar.sendMessage("\u0412\u044B \u0431\u044B\u043B\u0438 \u0442\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u0433\u043E\u0440\u043E\u0434 \u043F\u043E \u043F\u0440\u0435\u0447\u0438\u043D\u0435 (\u0412\u044B \u043D\u0430\u0445\u043E\u0434\u0438\u043B\u0438\u0441\u044C \u0432 \u043E\u0441\u0430\u0434\u043D\u043E\u0439 \u0437\u043E\u043D\u0435)");
}
RegionBBSManager.getInstance().changeCommunityBoard();
if(CTF._savePlayers.contains(activeChar.getName()))
CTF.addDisconnectedPlayer(activeChar);
if(Config.SPAWNS_L2DOT_CLASS_MASTER && Config.ALLOW_REMOTE_CLASS_MASTERS)
{
L2ClassMasterInstance master_instance = L2ClassMasterInstance.getInstance();
if(master_instance != null)
{
ClassLevel lvlnow = PlayerClass.values()[activeChar.getClassId().getId()].getLevel();
if(activeChar.getLevel() >= 20 && lvlnow == ClassLevel.First)
L2ClassMasterInstance.getInstance().onAction(activeChar);
else
if(activeChar.getLevel() >= 40 && lvlnow == ClassLevel.Second)
L2ClassMasterInstance.getInstance().onAction(activeChar);
else
if(activeChar.getLevel() >= 76 && lvlnow == ClassLevel.Third)
L2ClassMasterInstance.getInstance().onAction(activeChar);
} else
{
_log.info("Attention: Remote ClassMaster is Enabled, but not inserted into DataBase. Remember to install 31228 Npc ..");
}
}
if(activeChar.getRace().ordinal() == 2)
{
L2Skill skill = SkillTable.getInstance().getInfo(294, 1);
if(skill != null && activeChar.getSkillLevel(294) == 1)
if(GameTimeController.getInstance().isNowNight())
{
SystemMessage smm = new SystemMessage(SystemMessageId.NIGHT_EFFECT_APPLIES);
smm.addSkillName(294);
sendPacket(smm);
} else
{
SystemMessage smm = new SystemMessage(SystemMessageId.DAY_EFFECT_DISAPPEARS);
smm.addSkillName(294);
sendPacket(smm);
}
}
}
private void engage(L2PcInstance cha)
{
int _chaid = cha.getObjectId();
Iterator i$ = CoupleManager.getInstance().getCouples().iterator();
do
{
if(!i$.hasNext())
break;
Couple cl = (Couple)i$.next();
if(cl.getPlayer1Id() == _chaid || cl.getPlayer2Id() == _chaid)
{
if(cl.getMaried())
cha.setMarried(true);
cha.setCoupleId(cl.getId());
if(cl.getPlayer1Id() == _chaid)
cha.setPartnerId(cl.getPlayer2Id());
else
cha.setPartnerId(cl.getPlayer1Id());
}
} while(true);
}
private void notifyPartner(L2PcInstance cha, int partnerId)
{
if(cha == null)
return;
if(cha.getPartnerId() != 0)
{
L2PcInstance partner = (L2PcInstance)L2World.getInstance().findObject(cha.getPartnerId());
if(cha.isMarried() && Config.COLOR_WEDDING_NAME)
cha.getAppearance().setNameColor(Config.COLOR_WEDDING_NAMES);
if(partner != null && partner.getAppearance().getSex() == cha.getAppearance().getSex() && cha.isMarried() && Config.COLOR_WEDDING_NAME)
{
if(cha.getAppearance().getSex())
{
cha.getAppearance().setNameColor(Config.COLOR_WEDDING_NAMES_LIZ);
partner.getAppearance().setNameColor(Config.COLOR_WEDDING_NAMES_LIZ);
} else
{
cha.getAppearance().setNameColor(Config.COLOR_WEDDING_NAMES_GEY);
partner.getAppearance().setNameColor(Config.COLOR_WEDDING_NAMES_GEY);
}
partner.sendMessage("\u0412\u0430\u0448 \u043F\u0430\u0440\u0442\u043D\u0435\u0440 \u0432\u043E\u0448\u0435\u043B \u0432 \u0438\u0433\u0440\u0443.");
partner.broadcastUserInfo();
}
partner = null;
}
}
public static void notifyFriends(L2PcInstance cha, boolean login)
{
Connection con;
PreparedStatement statement;
ResultSet rset;
if(login)
cha.sendPacket(new FriendList(cha, false));
con = null;
statement = null;
rset = null;
con = L2DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT friend_id from character_friends where char_id=?");
statement.setInt(1, cha.getObjectId());
rset = statement.executeQuery();
do
{
if(!rset.next())
break;
int objectId = rset.getInt("friend_id");
L2PcInstance friend = (L2PcInstance)L2World.getInstance().findObject(objectId);
if(friend != null)
if(login)
{
friend.sendPacket((new SystemMessage(SystemMessageId.FRIEND_S1_HAS_LOGGED_IN)).addString(cha.getName())
);
friend.sendPacket(new FriendStatus(cha, true));
} else
{
friend.sendPacket(new FriendStatus(cha, false));
}
} while(true);
Exception e;
try
{
con.close();
statement.close();
rset.close();
}
// Misplaced declaration of an exception variable
catch(Exception e) { }
break MISSING_BLOCK_LABEL_272;
e;
_log.warning((new StringBuilder()).append("could not restore friend data:").append(e).toString());
try
{
con.close();
statement.close();
rset.close();
}
// Misplaced declaration of an exception variable
catch(Exception e) { }
break MISSING_BLOCK_LABEL_272;
Exception exception;
exception;
try
{
con.close();
statement.close();
rset.close();
}
catch(Exception e) { }
throw exception;
cha.updateEffectIcons();
return;
}
private void notifyClanMembers(L2PcInstance activeChar)
{
L2Clan clan = activeChar.getClan();
if(clan != null)
{
clan.getClanMember(activeChar.getName()).setPlayerInstance(activeChar);
SystemMessage msg = new SystemMessage(SystemMessageId.CLAN_MEMBER_S1_LOGGED_IN);
msg.addString(activeChar.getName());
clan.broadcastToOtherOnlineMembers(msg, activeChar);
msg = null;
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListUpdate(activeChar), activeChar);
if(clan.isNoticeEnabled())
sendPacket(new NpcHtmlMessage(1, (new StringBuilder()).append("<html><title>Clan Announcements</title><body><br><center><font color=\"CCAA00\">").append(activeChar.getClan().getName()).append("</font> <font color=\"6655FF\">Clan Alert Message</font></center><br>").append("<img src=\"L2UI.SquareWhite\" width=270 height=1><br>").append(activeChar.getClan().getNotice().replaceAll("\r\n", "<br>")).append("</body></html>").toString()));
}
}
private void notifySponsorOrApprentice(L2PcInstance activeChar)
{
if(activeChar.getSponsor() != 0)
{
L2PcInstance sponsor = (L2PcInstance)L2World.getInstance().findObject(activeChar.getSponsor());
if(sponsor != null)
{
SystemMessage msg = new SystemMessage(SystemMessageId.YOUR_APPRENTICE_S1_HAS_LOGGED_IN);
msg.addString(activeChar.getName());
sponsor.sendPacket(msg);
}
} else
if(activeChar.getApprentice() != 0)
{
L2PcInstance apprentice = (L2PcInstance)L2World.getInstance().findObject(activeChar.getApprentice());
if(apprentice != null)
{
SystemMessage msg = new SystemMessage(SystemMessageId.YOUR_SPONSOR_S1_HAS_LOGGED_IN);
msg.addString(activeChar.getName());
apprentice.sendPacket(msg);
}
}
}
private void loadTutorial(L2PcInstance player)
{
QuestState qs = player.getQuestState("255_Tutorial");
if(qs != null)
qs.getQuest().notifyEvent("UC", null, player);
}
private void setPledgeClass(L2PcInstance activeChar)
{
int pledgeClass = 0;
if(activeChar.getClan() != null)
pledgeClass = activeChar.getClan().getClanMember(activeChar.getObjectId()).calculatePledgeClas
s(activeChar);
if(activeChar.isNoble() && pledgeClass < 5)
pledgeClass = 5;
if(activeChar.isHero())
pledgeClass = 8;
activeChar.setPledgeClass(pledgeClass);
}
public String getType()
{
return "[C] 03 EnterWorld";
}
private static final String _C__03_ENTERWORLD = "[C] 03 EnterWorld";
private static Logger _log = Logger.getLogger(l2dot/gameserver/clientpackets/EnterWorld.getName());
}
Дело в том что в 2.3 реве файл 1 в 1(исходы) и там тоже такая же ошибка когда комплитиш