я уберал копирайт файл EnterWorld.java
Вот код:
package l2p.gameserver.clientpackets;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import l2p.gameserver.Announcements;
import l2p.gameserver.Config;
import l2p.gameserver.dao.MailDAO;
import l2p.gameserver.data.StringHolder;
import l2p.gameserver.data.xml.holder.ResidenceHolder;
import l2p.gameserver.instancemanager.CoupleManager;
import l2p.gameserver.instancemanager.CursedWeaponsManager;
import l2p.gameserver.instancemanager.PetitionManager;
import l2p.gameserver.instancemanager.PlayerMessageStack;
import l2p.gameserver.instancemanager.QuestManager;
import l2p.gameserver.listener.actor.player.impl.ReviveAnswerListener;
import l2p.gameserver.model.Creature;
import l2p.gameserver.model.Effect;
import l2p.gameserver.model.EffectList;
import l2p.gameserver.model.GameObjectsStorage;
import l2p.gameserver.model.Party;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Skill;
import l2p.gameserver.model.Summon;
import l2p.gameserver.model.World;
import l2p.gameserver.model.actor.instances.player.FriendList;
import l2p.gameserver.model.actor.instances.player.MacroList;
import l2p.gameserver.model.actor.instances.player.NevitSystem;
import l2p.gameserver.model.actor.listener.PlayerListenerList;
import l2p.gameserver.model.base.InvisibleType;
import l2p.gameserver.model.base.PlayerAccess;
import l2p.gameserver.model.entity.SevenSigns;
import l2p.gameserver.model.entity.boat.Boat;
import l2p.gameserver.model.entity.events.impl.ClanHallAuctionEvent;
import l2p.gameserver.model.entity.residence.ClanHall;
import l2p.gameserver.model.items.ClanWarehouse;
import l2p.gameserver.model.items.ItemInstance;
import l2p.gameserver.model.items.ItemInstance.ItemLocation;
import l2p.gameserver.model.mail.Mail;
import l2p.gameserver.model.mail.Mail.SenderType;
import l2p.gameserver.model.pledge.Clan;
import l2p.gameserver.model.pledge.SubUnit;
import l2p.gameserver.model.pledge.UnitMember;
import l2p.gameserver.model.quest.Quest;
import l2p.gameserver.network.GameClient;
import l2p.gameserver.serverpackets.ChangeWaitType;
import l2p.gameserver.serverpackets.ClientSetTime;
import l2p.gameserver.serverpackets.ConfirmDlg;
import l2p.gameserver.serverpackets.Die;
import l2p.gameserver.serverpackets.EtcStatusUpdate;
import l2p.gameserver.serverpackets.ExAutoSoulShot;
import l2p.gameserver.serverpackets.ExBR_PremiumState;
import l2p.gameserver.serverpackets.ExBasicActionList;
import l2p.gameserver.serverpackets.ExMPCCOpen;
import l2p.gameserver.serverpackets.ExNoticePostArrived;
import l2p.gameserver.serverpackets.ExNotifyPremiumItem;
import l2p.gameserver.serverpackets.ExPCCafePointInfo;
import l2p.gameserver.serverpackets.ExReceiveShowPostFriend;
import l2p.gameserver.serverpackets.ExSetCompassZoneCode;
import l2p.gameserver.serverpackets.ExStorageMaxCount;
import l2p.gameserver.serverpackets.HennaInfo;
import l2p.gameserver.serverpackets.L2FriendList;
import l2p.gameserver.serverpackets.L2GameServerPacket;
import l2p.gameserver.serverpackets.MagicSkillLaunched;
import l2p.gameserver.serverpackets.MagicSkillUse;
import l2p.gameserver.serverpackets.PartySmallWindowAll;
import l2p.gameserver.serverpackets.PartySpelled;
import l2p.gameserver.serverpackets.PetInfo;
import l2p.gameserver.serverpackets.PledgeShowInfoUpdate;
import l2p.gameserver.serverpackets.PledgeShowMemberListUpdate;
import l2p.gameserver.serverpackets.PledgeSkillList;
import l2p.gameserver.serverpackets.PrivateStoreMsgBuy;
import l2p.gameserver.serverpackets.PrivateStoreMsgSell;
import l2p.gameserver.serverpackets.QuestList;
import l2p.gameserver.serverpackets.RecipeShopMsg;
import l2p.gameserver.serverpackets.RelationChanged;
import l2p.gameserver.serverpackets.Ride;
import l2p.gameserver.serverpackets.SSQInfo;
import l2p.gameserver.serverpackets.ShortCutInit;
import l2p.gameserver.serverpackets.SkillCoolTime;
import l2p.gameserver.serverpackets.SkillList;
import l2p.gameserver.serverpackets.SystemMessage2;
import l2p.gameserver.serverpackets.components.IStaticPacket;
import l2p.gameserver.serverpackets.components.SystemMsg;
import l2p.gameserver.skills.AbnormalEffect;
import l2p.gameserver.tables.SkillTable;
import l2p.gameserver.utils.GameStats;
import l2p.gameserver.utils.ItemFunctions;
import l2p.gameserver.utils.TradeHelper;
import org.apache.commons.lang3.tuple.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class EnterWorld extends L2GameClientPacket
{
private static final Object _lock = new Object();
private static final Logger _log = LoggerFactory.getLogger(EnterWorld.class);
protected void readImpl()
{
}
protected void runImpl()
{
label150: boolean bool1;
GameClient client = (GameClient)getClient();
Player activeChar = client.getActiveChar();
if (activeChar == null)
{
client.closeNow(false);
return;
}
int MyObjectId = activeChar.getObjectId();
Long MyStoreId = activeChar.getStoredId();
Object localObject1 = _lock; monitorenter;
try {
Iterator i$ = GameObjectsStorage.getAllPlayersForIterate().iterator();
while (true) { Player cha;
while (true) { if (!(i$.hasNext())) break label150; cha = (Player)i$.next();
if (MyStoreId != cha.getStoredId())
break;
}
try
{
if (cha.getObjectId() == MyObjectId)
{
_log.warn("Double EnterWorld for char: " + activeChar.getName());
cha.kick();
}
}
catch (Exception e)
{
_log.error("", e); }
}
} finally {
monitorexit;
}
GameStats.incrementPlayerEnterGame();
boolean bool1 = activeChar.entering;
if (bool1)
{
activeChar.setOnlineStatus(true);
activeChar.setNonAggroTime(-1);
activeChar.spawnMe();
if ((activeChar.isInStoreMode()) &&
(!(TradeHelper.checksIfCanOpenStore(activeChar, activeChar.getPrivateStoreType()))))
{
activeChar.setPrivateStoreType(0);
activeChar.standUp();
activeChar.broadcastCharInfo();
}
activeChar.setRunning();
activeChar.standUp();
activeChar.startTimers();
}
activeChar.sendPacket(new ExBR_PremiumState(activeChar, activeChar.hasBonus()));
activeChar.getMacroses().sendUpdate();
activeChar.sendPacket(new IStaticPacket[] { new SSQInfo(), new HennaInfo(activeChar) });
activeChar.sendItemList(false);
activeChar.sendPacket(new IStaticPacket[] { new ShortCutInit(activeChar), new SkillList(activeChar), new SkillCoolTime(activeChar) });
activeChar.sendPacket(SystemMsg.WELCOME_TO_THE_WORLD_OF_LINEAGE_II);
Announcements.getInstance().showAnnouncements(activeChar);
if (bool1)
{
activeChar.getListeners().onEnter();
}
SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar);
activeChar.sendMessage("Сервер разработан командой http://Lineage-Help.ru");
if ((bool1) && (activeChar.getCreateTime() > 0L))
{
int i;
Calendar create = Calendar.getInstance();
create.setTimeInMillis(activeChar.getCreateTime());
Calendar now = Calendar.getInstance();
int day = create.get(5);
if ((create.get(2) == 1) && (day == 29))
{
day = 28;
}
int i = activeChar.getVarInt("MyBirthdayReceiveYear", 0);
if ((create.get(2) == now.get(2)) && (create.get(5) == day) && ((
((i == 0) && (create.get(1) != now.get(1))) || ((i > 0) && (i != now.get(1))))))
{
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(2592000 + (int)(System.currentTimeMillis() / 1000));
mail.save();
activeChar.setVar("MyBirthdayReceiveYear", String.valueOf(now.get(1)), -1);
}
}
if (activeChar.getClan() != null)
{
notifyClanMembers(activeChar);
activeChar.sendPacket(activeChar.getClan().listAll());
activeChar.sendPacket(new IStaticPacket[] { new PledgeShowInfoUpdate(activeChar.getClan()), new PledgeSkillList(activeChar.getClan()) });
}
if ((bool1) && (Config.ALLOW_WEDDING))
{
CoupleManager.getInstance().engage(activeChar);
CoupleManager.getInstance().notifyPartner(activeChar);
}
if (bool1)
{
activeChar.getFriendList().notifyFriends(true);
loadTutorial(activeChar);
activeChar.restoreDisableSkills();
}
sendPacket(new L2GameServerPacket[] { 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 (!(bool1))
{
if (activeChar.isCastingNow())
{
Creature castingTarget = activeChar.getCastingTarget();
Skill castingSkill = activeChar.getCastingSkill();
long animationEndTime = activeChar.getAnimationEndTime();
if ((castingSkill != null) && (castingTarget != null) && (castingTarget.isCreature()) && (activeChar.getAnimationEndTime() > 0L))
{
sendPacket(new MagicSkillUse(activeChar, castingTarget, castingSkill.getId(), castingSkill.getLevel(), (int)(animationEndTime - System.currentTimeMillis()), 0L));
}
}
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(true);
if (activeChar.isSitting())
{
activeChar.sendPacket(new ChangeWaitType(activeChar, 0));
}
if (activeChar.getPrivateStoreType() != 0)
{
if (activeChar.getPrivateStoreType() == 3)
{
sendPacket(new PrivateStoreMsgBuy(activeChar));
}
else if ((activeChar.getPrivateStoreType() == 1) || (activeChar.getPrivateStoreType() == )
{
sendPacket(new PrivateStoreMsgSell(activeChar));
}
else if (activeChar.getPrivateStoreType() == 5)
{
sendPacket(new RecipeShopMsg(activeChar));
}
}
if (activeChar.isDead())
{
sendPacket(new Die(activeChar));
}
activeChar.unsetVar("offline");
activeChar.sendActionFailed();
if ((bool1) && (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_INVULNERABLE);
activeChar.sendMessage(activeChar.getName() + " is now immortal.");
}
if (activeChar.getVarB("gm_invis"))
{
activeChar.setInvisibleType(InvisibleType.NORMAL);
activeChar.sendUserInfo(true);
World.removeObjectFromPlayers(activeChar);
}
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(new L2GameServerPacket[] { ClientSetTime.STATIC, new ExSetCompassZoneCode(activeChar) });
Pair entry = activeChar.getAskListener(false);
if ((entry != null) && (entry.getValue() instanceof ReviveAnswerListener))
{
sendPacket(((ConfirmDlg)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 (!(bool1))
{
int j;
if (activeChar.isInObserverMode())
{
if (activeChar.getObserverMode() == 2)
{
activeChar.returnFromObserverMode();
}
else if (activeChar.getOlympiadObserveGame() != null)
{
activeChar.leaveOlympiadObserverMode(true);
}
else
{
activeChar.leaveObserverMode();
}
}
else if (activeChar.isVisible())
{
World.showObjectsToPlayer(activeChar);
}
if (activeChar.getPet() != null)
{
sendPacket(new PetInfo(activeChar.getPet()));
}
if (activeChar.isInParty())
{
sendPacket(new PartySmallWindowAll(activeChar.getParty(), activeChar));
for (Iterator i$ = activeChar.getParty().getPartyMembers().iterator(); i$.hasNext(); ) { Player member = (Player)i$.next();
if (member != activeChar)
{
Summon member_pet;
sendPacket(new PartySpelled(member, true));
if ((member_pet = member.getPet()) != null)
{
sendPacket(new PartySpelled(member_pet, true));
}
sendPacket(RelationChanged.update(activeChar, member, activeChar));
}
}
if (activeChar.getParty().isInCommandChannel())
{
sendPacket(ExMPCCOpen.STATIC);
}
}
for (Iterator i$ = activeChar.getAutoSoulShot().iterator(); i$.hasNext(); ) { int shotId = ((Integer)i$.next()).intValue();
sendPacket(new ExAutoSoulShot(shotId, true));
}
Effect[] arr$ = activeChar.getEffectList().getAllFirstEffects(); int len$ = arr$.length; for (int j = 0; j < len$; ++j) { Effect e = arr$[j];
if (e.getSkill().isToggle())
{
sendPacket(new MagicSkillLaunched(activeChar.getObjectId(), e.getSkill().getId(), e.getSkill().getLevel(), activeChar));
}
}
activeChar.broadcastCharInfo();
}
else
{
activeChar.sendUserInfo();
}
activeChar.updateEffectIcons();
activeChar.updateStats();
if (Config.ALT_PCBANG_POINTS_ENABLED)
{
activeChar.sendPacket(new ExPCCafePointInfo(activeChar, 0, 1, 2, 12));
}
if (!(activeChar.getPremiumItemList().isEmpty()))
{
activeChar.sendPacket(ExNotifyPremiumItem.STATIC);
}
activeChar.sendVoteSystemInfo();
activeChar.sendPacket(new ExReceiveShowPostFriend(activeChar));
activeChar.getNevitSystem().onEnterWorld();
checkNewMail(activeChar);
if (activeChar.isCursedWeaponEquipped())
{
CursedWeaponsManager.getInstance().showUsageTime(activeChar, activeChar.getCursedWeaponEquippedId());
}
if (Config.AntiBotCaptcha)
{
activeChar.sendCaptcha();
}
else
{
Clan.showClanNotice(activeChar);
}
}
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 (Iterator i$ = clan.getOnlineMembers(activeChar.getObjectId()).iterator(); i$.hasNext(); ) { Player clanMember = (Player)i$.next();
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);
}
}
if (!(activeChar.isClanLeader()))
{
return;
}
ClanHall clanHall = (clan.getHasHideout() > 0) ? (ClanHall)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(57) > 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()));
}
}
private void loadTutorial(Player player)
{
Quest q = QuestManager.getQuest(255);
if (q != null)
{
player.processQuestEvent(q.getName(), "UC", null);
}
}
private void checkNewMail(Player activeChar)
{
for (Iterator i$ = MailDAO.getInstance().getReceivedMailByOwnerId(activeChar.getObjectId()).iterator(); i$.hasNext(); ) { Mail mail = (Mail)i$.next();
if (mail.isUnread())
{
sendPacket(ExNoticePostArrived.STATIC_FALSE);
return;
}
}
}
}