Fixed client crashing upon entering game with clan skills.

This commit is contained in:
MobiusDev 2015-04-30 21:23:39 +00:00
parent c5ffe6ae26
commit 9dceacb328

View File

@ -227,105 +227,6 @@ public class EnterWorld extends L2GameClientPacket
activeChar.setIsDead(true); activeChar.setIsDead(true);
} }
boolean showClanNotice = false;
// Clan related checks are here
if (activeChar.getClan() != null)
{
notifyClanMembers(activeChar);
notifySponsorOrApprentice(activeChar);
AuctionableHall clanHall = ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan());
if (clanHall != null)
{
if (!clanHall.getPaid())
{
activeChar.sendPacket(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
}
}
for (Siege siege : SiegeManager.getInstance().getSieges())
{
if (!siege.isInProgress())
{
continue;
}
if (siege.checkIsAttacker(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 1);
activeChar.setSiegeSide(siege.getCastle().getResidenceId());
}
else if (siege.checkIsDefender(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 2);
activeChar.setSiegeSide(siege.getCastle().getResidenceId());
}
}
for (FortSiege siege : FortSiegeManager.getInstance().getSieges())
{
if (!siege.isInProgress())
{
continue;
}
if (siege.checkIsAttacker(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 1);
activeChar.setSiegeSide(siege.getFort().getResidenceId());
}
else if (siege.checkIsDefender(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 2);
activeChar.setSiegeSide(siege.getFort().getResidenceId());
}
}
for (SiegableHall hall : CHSiegeManager.getInstance().getConquerableHalls().values())
{
if (!hall.isInSiege())
{
continue;
}
if (hall.isRegistered(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 1);
activeChar.setSiegeSide(hall.getId());
activeChar.setIsInHideoutSiege(true);
}
}
// Residential skills support
if (activeChar.getClan().getCastleId() > 0)
{
CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).giveResidentialSkills(activeChar);
}
if (activeChar.getClan().getFortId() > 0)
{
FortManager.getInstance().getFortByOwner(activeChar.getClan()).giveResidentialSkills(activeChar);
}
showClanNotice = activeChar.getClan().isNoticeEnabled();
// Show clan crest
if (activeChar.getClan().getCrestId() > 0)
{
sendPacket(new PledgeCrest(activeChar.getClan().getCrestId()));
}
// Show ally crest
if (activeChar.getClan().getAllyCrestId() > 0)
{
sendPacket(new AllyCrest(activeChar.getClan().getAllyCrestId()));
}
}
if (Config.ENABLE_VITALITY) if (Config.ENABLE_VITALITY)
{ {
activeChar.sendPacket(new ExVitalityEffectInfo(activeChar)); activeChar.sendPacket(new ExVitalityEffectInfo(activeChar));
@ -428,6 +329,103 @@ public class EnterWorld extends L2GameClientPacket
// Send Quest List // Send Quest List
activeChar.sendPacket(new QuestList()); activeChar.sendPacket(new QuestList());
boolean showClanNotice = false;
// Clan related checks are here
if (activeChar.getClan() != null)
{
notifyClanMembers(activeChar);
notifySponsorOrApprentice(activeChar);
AuctionableHall clanHall = ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan());
if (clanHall != null)
{
if (!clanHall.getPaid())
{
activeChar.sendPacket(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
}
}
for (Siege siege : SiegeManager.getInstance().getSieges())
{
if (!siege.isInProgress())
{
continue;
}
if (siege.checkIsAttacker(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 1);
activeChar.setSiegeSide(siege.getCastle().getResidenceId());
}
else if (siege.checkIsDefender(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 2);
activeChar.setSiegeSide(siege.getCastle().getResidenceId());
}
}
for (FortSiege siege : FortSiegeManager.getInstance().getSieges())
{
if (!siege.isInProgress())
{
continue;
}
if (siege.checkIsAttacker(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 1);
activeChar.setSiegeSide(siege.getFort().getResidenceId());
}
else if (siege.checkIsDefender(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 2);
activeChar.setSiegeSide(siege.getFort().getResidenceId());
}
}
for (SiegableHall hall : CHSiegeManager.getInstance().getConquerableHalls().values())
{
if (!hall.isInSiege())
{
continue;
}
if (hall.isRegistered(activeChar.getClan()))
{
activeChar.setSiegeState((byte) 1);
activeChar.setSiegeSide(hall.getId());
activeChar.setIsInHideoutSiege(true);
}
}
// Residential skills support
if (activeChar.getClan().getCastleId() > 0)
{
CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).giveResidentialSkills(activeChar);
}
if (activeChar.getClan().getFortId() > 0)
{
FortManager.getInstance().getFortByOwner(activeChar.getClan()).giveResidentialSkills(activeChar);
}
showClanNotice = activeChar.getClan().isNoticeEnabled();
// Show clan crest
if (activeChar.getClan().getCrestId() > 0)
{
sendPacket(new PledgeCrest(activeChar.getClan().getCrestId()));
}
// Show ally crest
if (activeChar.getClan().getAllyCrestId() > 0)
{
sendPacket(new AllyCrest(activeChar.getClan().getAllyCrestId()));
}
}
if (Config.PLAYER_SPAWN_PROTECTION > 0) if (Config.PLAYER_SPAWN_PROTECTION > 0)
{ {
activeChar.setProtection(true); activeChar.setProtection(true);