Code improvements.

This commit is contained in:
MobiusDev
2016-04-24 16:30:15 +00:00
parent 8bd51aba1c
commit 2dd14bef9b
860 changed files with 8865 additions and 17041 deletions

View File

@@ -53,14 +53,8 @@ public final class AnswerJoinPartyRoom extends L2GameClientPacket
}
final L2PcInstance partner = player.getActiveRequester();
if (partner == null)
{
// Partner hasn't been found, cancel the invitation
player.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE);
player.setActiveRequester(null);
return;
}
else if (L2World.getInstance().getPlayer(partner.getObjectId()) == null)
// Partner hasn't been found, cancel the invitation
if ((partner == null) || (L2World.getInstance().getPlayer(partner.getObjectId()) == null))
{
// Partner hasn't been found, cancel the invitation
player.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE);

View File

@@ -57,15 +57,7 @@ public final class AnswerTradeRequest extends L2GameClientPacket
}
final L2PcInstance partner = player.getActiveRequester();
if (partner == null)
{
// Trade partner not found, cancel trade
player.sendPacket(new TradeDone(0));
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE));
player.setActiveRequester(null);
return;
}
else if (L2World.getInstance().getPlayer(partner.getObjectId()) == null)
if ((partner == null) || (L2World.getInstance().getPlayer(partner.getObjectId()) == null))
{
// Trade partner not found, cancel trade
player.sendPacket(new TradeDone(0));

View File

@@ -87,16 +87,7 @@ public final class Attack extends L2GameClientPacket
}
// avoid using expensive operations if not needed
final L2Object target;
if (activeChar.getTargetId() == _objectId)
{
target = activeChar.getTarget();
}
else
{
target = L2World.getInstance().findObject(_objectId);
}
final L2Object target = activeChar.getTargetId() == _objectId ? activeChar.getTarget() : L2World.getInstance().findObject(_objectId);
if (target == null)
{
return;
@@ -110,14 +101,14 @@ public final class Attack extends L2GameClientPacket
// Players can't attack objects in the other instances
// except from multiverse
else if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
{
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
// Only GMs can directly attack invisible characters
else if (!target.isVisibleFor(activeChar))
if (!target.isVisibleFor(activeChar))
{
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;

View File

@@ -76,16 +76,7 @@ public final class AttackRequest extends L2GameClientPacket
}
// avoid using expensive operations if not needed
final L2Object target;
if (activeChar.getTargetId() == _objectId)
{
target = activeChar.getTarget();
}
else
{
target = L2World.getInstance().findObject(_objectId);
}
final L2Object target = activeChar.getTargetId() == _objectId ? activeChar.getTarget() : L2World.getInstance().findObject(_objectId);
if (target == null)
{
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
@@ -100,14 +91,14 @@ public final class AttackRequest extends L2GameClientPacket
// Players can't attack objects in the other instances
// except from multiverse
else if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
{
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
// Only GMs can directly attack invisible characters
else if (!target.isVisibleFor(activeChar))
if (!target.isVisibleFor(activeChar))
{
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;

View File

@@ -42,10 +42,7 @@ public class BrEventRankerList extends L2GameClientPacket
protected void runImpl()
{
// TODO count, bestScore, myScore
final int count = 0;
final int bestScore = 0;
final int myScore = 0;
getClient().sendPacket(new ExBrLoadEventTopRankers(_eventId, _day, count, bestScore, myScore));
getClient().sendPacket(new ExBrLoadEventTopRankers(_eventId, _day, 0, 0, 0));
}
@Override

View File

@@ -47,20 +47,13 @@ public final class CannotMoveAnymoreInVehicle extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance player = getClient().getActiveChar();
if (player == null)
if ((player == null) || !player.isInBoat() || (player.getBoat().getObjectId() != _boatId))
{
return;
}
if (player.isInBoat())
{
if (player.getBoat().getObjectId() == _boatId)
{
player.setInVehiclePosition(new Location(_x, _y, _z));
player.setHeading(_heading);
final StopMoveInVehicle msg = new StopMoveInVehicle(player, _boatId);
player.broadcastPacket(msg);
}
}
player.setInVehiclePosition(new Location(_x, _y, _z));
player.setHeading(_heading);
player.broadcastPacket((new StopMoveInVehicle(player, _boatId)));
}
@Override

View File

@@ -167,7 +167,7 @@ public final class CharacterCreate extends L2GameClientPacket
sendPacket(new CharCreateFail(CharCreateFail.REASON_TOO_MANY_CHARACTERS));
return;
}
else if (CharNameTable.getInstance().doesCharNameExist(_name))
if (CharNameTable.getInstance().doesCharNameExist(_name))
{
if (Config.DEBUG)
{
@@ -258,9 +258,7 @@ public final class CharacterCreate extends L2GameClientPacket
break;
}
}
final PcAppearance app = new PcAppearance(_face, _hairColor, _hairStyle, _sex != 0);
newChar = L2PcInstance.create(template, getClient().getAccountName(), _name, app);
newChar = L2PcInstance.create(template, getClient().getAccountName(), _name, (new PcAppearance(_face, _hairColor, _hairStyle, _sex != 0)));
}
// HP and MP are at maximum and CP is zero by default.

View File

@@ -60,9 +60,7 @@ public final class CharacterDelete extends L2GameClientPacket
try
{
final byte answer = getClient().markToDeleteChar(_charSlot);
switch (answer)
switch (getClient().markToDeleteChar(_charSlot))
{
default:
case -1: // Error

View File

@@ -88,107 +88,102 @@ public class CharacterSelect extends L2GameClientPacket
// We should always be able to acquire the lock
// But if we can't lock then nothing should be done (i.e. repeated packet)
if (client.getActiveCharLock().tryLock())
if (!client.getActiveCharLock().tryLock())
{
try
return;
}
try
{
// should always be null
// but if not then this is repeated packet and nothing should be done here
if (client.getActiveChar() == null)
{
// should always be null
// but if not then this is repeated packet and nothing should be done here
if (client.getActiveChar() == null)
final CharSelectInfoPackage info = client.getCharSelection(_charSlot);
if (info == null)
{
final CharSelectInfoPackage info = client.getCharSelection(_charSlot);
if (info == null)
{
return;
}
// Banned?
if (PunishmentManager.getInstance().hasPunishment(info.getObjectId(), PunishmentAffect.CHARACTER, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getAccountName(), PunishmentAffect.ACCOUNT, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getConnectionAddress().getHostAddress(), PunishmentAffect.IP, PunishmentType.BAN))
{
client.close(ServerClose.STATIC_PACKET);
return;
}
// Selected character is banned (compatibility with previous versions).
if (info.getAccessLevel() < 0)
{
client.close(ServerClose.STATIC_PACKET);
return;
}
if ((Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP > 0) && !AntiFeedManager.getInstance().tryAddClient(AntiFeedManager.GAME_ID, client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP))
return;
}
// Banned?
if (PunishmentManager.getInstance().hasPunishment(info.getObjectId(), PunishmentAffect.CHARACTER, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getAccountName(), PunishmentAffect.ACCOUNT, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getConnectionAddress().getHostAddress(), PunishmentAffect.IP, PunishmentType.BAN) || (info.getAccessLevel() < 0))
{
client.close(ServerClose.STATIC_PACKET);
return;
}
if ((Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP > 0) && !AntiFeedManager.getInstance().tryAddClient(AntiFeedManager.GAME_ID, client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP))
{
final NpcHtmlMessage msg = new NpcHtmlMessage();
msg.setFile(info.getHtmlPrefix(), "html/mods/IPRestriction.htm");
msg.replace("%max%", String.valueOf(AntiFeedManager.getInstance().getLimit(client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP)));
client.sendPacket(msg);
return;
}
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_BALANCE_ONLINE_PLAYERS)
{
if (info.isGood() && (L2World.getInstance().getAllGoodPlayersCount() >= ((L2World.getInstance().getAllEvilPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
{
final NpcHtmlMessage msg = new NpcHtmlMessage();
msg.setFile(info.getHtmlPrefix(), "html/mods/IPRestriction.htm");
msg.replace("%max%", String.valueOf(AntiFeedManager.getInstance().getLimit(client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP)));
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
msg.replace("%more%", Config.FACTION_GOOD_TEAM_NAME);
msg.replace("%less%", Config.FACTION_EVIL_TEAM_NAME);
client.sendPacket(msg);
return;
}
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_BALANCE_ONLINE_PLAYERS)
if (info.isEvil() && (L2World.getInstance().getAllEvilPlayersCount() >= ((L2World.getInstance().getAllGoodPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
{
if (info.isGood() && (L2World.getInstance().getAllGoodPlayersCount() >= ((L2World.getInstance().getAllEvilPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
{
final NpcHtmlMessage msg = new NpcHtmlMessage();
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
msg.replace("%more%", Config.FACTION_GOOD_TEAM_NAME);
msg.replace("%less%", Config.FACTION_EVIL_TEAM_NAME);
client.sendPacket(msg);
return;
}
if (info.isEvil() && (L2World.getInstance().getAllEvilPlayersCount() >= ((L2World.getInstance().getAllGoodPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
{
final NpcHtmlMessage msg = new NpcHtmlMessage();
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
msg.replace("%more%", Config.FACTION_EVIL_TEAM_NAME);
msg.replace("%less%", Config.FACTION_GOOD_TEAM_NAME);
client.sendPacket(msg);
return;
}
}
// The L2PcInstance must be created here, so that it can be attached to the L2GameClient
if (Config.DEBUG)
{
_log.fine("selected slot:" + _charSlot);
}
// load up character from disk
final L2PcInstance cha = client.loadCharFromDisk(_charSlot);
if (cha == null)
{
return; // handled in L2GameClient
}
L2World.getInstance().addPlayerToWorld(cha);
CharNameTable.getInstance().addName(cha);
cha.setClient(client);
client.setActiveChar(cha);
cha.setOnlineStatus(true, true);
final TerminateReturn terminate = EventDispatcher.getInstance().notifyEvent(new OnPlayerSelect(cha, cha.getObjectId(), cha.getName(), getClient()), Containers.Players(), TerminateReturn.class);
if ((terminate != null) && terminate.terminate())
{
cha.deleteMe();
final NpcHtmlMessage msg = new NpcHtmlMessage();
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
msg.replace("%more%", Config.FACTION_EVIL_TEAM_NAME);
msg.replace("%less%", Config.FACTION_GOOD_TEAM_NAME);
client.sendPacket(msg);
return;
}
client.setState(GameClientState.IN_GAME);
sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
// The L2PcInstance must be created here, so that it can be attached to the L2GameClient
if (Config.DEBUG)
{
_log.fine("selected slot:" + _charSlot);
}
// load up character from disk
final L2PcInstance cha = client.loadCharFromDisk(_charSlot);
if (cha == null)
{
return; // handled in L2GameClient
}
L2World.getInstance().addPlayerToWorld(cha);
CharNameTable.getInstance().addName(cha);
cha.setClient(client);
client.setActiveChar(cha);
cha.setOnlineStatus(true, true);
final TerminateReturn terminate = EventDispatcher.getInstance().notifyEvent(new OnPlayerSelect(cha, cha.getObjectId(), cha.getName(), getClient()), Containers.Players(), TerminateReturn.class);
if ((terminate != null) && terminate.terminate())
{
cha.deleteMe();
return;
}
client.setState(GameClientState.IN_GAME);
sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
}
finally
{
client.getActiveCharLock().unlock();
}
final LogRecord record = new LogRecord(Level.INFO, "Logged in");
record.setParameters(new Object[]
{
client
});
_logAccounting.log(record);
}
finally
{
client.getActiveCharLock().unlock();
}
final LogRecord record = new LogRecord(Level.INFO, "Logged in");
record.setParameters(new Object[]
{
client
});
_logAccounting.log(record);
}
@Override

View File

@@ -20,7 +20,6 @@ import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.enums.PlayerAction;
import com.l2jmobius.gameserver.handler.AdminCommandHandler;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.events.EventDispatcher;
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerDlgAnswer;
@@ -81,14 +80,13 @@ public final class DlgAnswer extends L2GameClientPacket
return;
}
final String command = cmd.split(" ")[0];
final IAdminCommandHandler ach = AdminCommandHandler.getInstance().getHandler(command);
if (AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
{
if (Config.GMAUDIT)
{
GMAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", cmd, (activeChar.getTarget() != null ? activeChar.getTarget().getName() : "no-target"));
}
ach.useAdminCommand(cmd, activeChar);
AdminCommandHandler.getInstance().getHandler(command).useAdminCommand(cmd, activeChar);
}
}
}

View File

@@ -37,11 +37,7 @@ public final class EndScenePlayer extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (_movieId == 0)
if ((activeChar == null) || (_movieId == 0))
{
return;
}

View File

@@ -171,12 +171,9 @@ public class EnterWorld extends L2GameClientPacket
}
}
if (Config.DEBUG)
if (Config.DEBUG && (L2World.getInstance().findObject(activeChar.getObjectId()) != null))
{
if (L2World.getInstance().findObject(activeChar.getObjectId()) != null)
{
_log.warning("User already exists in Object ID map! User " + activeChar.getName() + " is a character clone.");
}
_log.warning("User already exists in Object ID map! User " + activeChar.getName() + " is a character clone.");
}
// Apply special GM properties to the GM when entering
@@ -334,12 +331,9 @@ public class EnterWorld extends L2GameClientPacket
notifySponsorOrApprentice(activeChar);
final AuctionableHall clanHall = ClanHallManager.getInstance().getClanHallByOwner(clan);
if (clanHall != null)
if ((clanHall != null) && !clanHall.getPaid())
{
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);
}
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())
@@ -601,12 +595,9 @@ public class EnterWorld extends L2GameClientPacket
activeChar.destroyItem("Akamanah", activeChar.getInventory().getItemByItemId(8689), null, true);
}
if (Config.ALLOW_MAIL)
if (Config.ALLOW_MAIL && MailManager.getInstance().hasUnreadPost(activeChar))
{
if (MailManager.getInstance().hasUnreadPost(activeChar))
{
sendPacket(ExNoticePostArrived.valueOf(false));
}
sendPacket(ExNoticePostArrived.valueOf(false));
}
TvTEvent.onLogin(activeChar);
@@ -712,16 +703,18 @@ public class EnterWorld extends L2GameClientPacket
private void notifyClanMembers(L2PcInstance activeChar)
{
final L2Clan clan = activeChar.getClan();
if (clan != null)
if (clan == null)
{
clan.getClanMember(activeChar.getObjectId()).setPlayerInstance(activeChar);
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_S1_HAS_LOGGED_INTO_GAME);
msg.addString(activeChar.getName());
clan.broadcastToOtherOnlineMembers(msg, activeChar);
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListUpdate(activeChar), activeChar);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
return;
}
clan.getClanMember(activeChar.getObjectId()).setPlayerInstance(activeChar);
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_S1_HAS_LOGGED_INTO_GAME);
msg.addString(activeChar.getName());
clan.broadcastToOtherOnlineMembers(msg, activeChar);
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListUpdate(activeChar), activeChar);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
}
/**

View File

@@ -71,9 +71,7 @@ public class GameGuardReply extends L2GameClientPacket
final L2GameClient client = getClient();
try
{
final MessageDigest md = MessageDigest.getInstance("SHA");
final byte[] result = md.digest(_reply);
if (Arrays.equals(result, VALID))
if (Arrays.equals(MessageDigest.getInstance("SHA").digest(_reply), VALID))
{
client.setGameGuardOk(true);
}

View File

@@ -52,12 +52,7 @@ public class MoveToLocationAirShip extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (!activeChar.isInAirShip())
if ((activeChar == null) || !activeChar.isInAirShip())
{
return;
}

View File

@@ -104,13 +104,10 @@ public class MultiSellChoose extends L2GameClientPacket
return;
}
if (!player.isGM() && (npc != null) && !list.isNpcAllowed(-1))
if (!player.isGM() && (npc != null) && !list.isNpcAllowed(-1) && (!player.isInsideRadius(npc, INTERACTION_DISTANCE, true, false) || (player.getInstanceId() != npc.getInstanceId())))
{
if (!player.isInsideRadius(npc, INTERACTION_DISTANCE, true, false) || (player.getInstanceId() != npc.getInstanceId()))
{
player.setMultiSell(null);
return;
}
player.setMultiSell(null);
return;
}
for (Entry entry : list.getEntries())
@@ -451,7 +448,6 @@ public class MultiSellChoose extends L2GameClientPacket
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S2_S1_S);
sm.addItemName(e.getItemId());
sm.addLong(e.getItemCount() * _amount);
player.sendPacket(sm);
}
else
{
@@ -459,15 +455,14 @@ public class MultiSellChoose extends L2GameClientPacket
{
sm = SystemMessage.getSystemMessage(SystemMessageId.ACQUIRED_S1_S2);
sm.addLong(e.getEnchantLevel());
sm.addItemName(e.getItemId());
}
else
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
sm.addItemName(e.getItemId());
}
player.sendPacket(sm);
sm.addItemName(e.getItemId());
}
player.sendPacket(sm);
}
if (matched)

View File

@@ -136,8 +136,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
return;
}
final int tmpLv = (prevSkillLevel == -1) ? 0 : prevSkillLevel;
if (tmpLv != (_level - 1))
if (((prevSkillLevel == -1) ? 0 : prevSkillLevel) != (_level - 1))
{
// The previous level skill has not been learned.
activeChar.sendPacket(SystemMessageId.THE_PREVIOUS_LEVEL_SKILL_HAS_NOT_BEEN_LEARNED);
@@ -227,14 +226,12 @@ public final class RequestAcquireSkill extends L2GameClientPacket
clan.broadcastToOnlineMembers(new PledgeSkillList(clan));
activeChar.sendPacket(new AcquireSkillDone());
L2VillageMasterInstance.showPledgeSkillList(activeChar);
}
else
{
activeChar.sendPacket(SystemMessageId.THE_ATTEMPT_TO_ACQUIRE_THE_SKILL_HAS_FAILED_BECAUSE_OF_AN_INSUFFICIENT_CLAN_REPUTATION);
L2VillageMasterInstance.showPledgeSkillList(activeChar);
}
L2VillageMasterInstance.showPledgeSkillList(activeChar);
break;
}
case SUBPLEDGE:
@@ -552,103 +549,100 @@ public final class RequestAcquireSkill extends L2GameClientPacket
*/
private boolean checkPlayerSkill(L2PcInstance player, L2Npc trainer, L2SkillLearn s)
{
if (s != null)
if ((s != null) && (s.getSkillId() == _id) && (s.getSkillLevel() == _level))
{
if ((s.getSkillId() == _id) && (s.getSkillLevel() == _level))
// Hack check.
if (s.getGetLevel() > player.getLevel())
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_SKILL_LEVEL_REQUIREMENTS);
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", IllegalActionPunishmentType.NONE);
return false;
}
// First it checks that the skill require SP and the player has enough SP to learn it.
final int levelUpSp = s.getCalculatedLevelUpSp(player.getClassId(), player.getLearningClass());
if ((levelUpSp > 0) && (levelUpSp > player.getSp()))
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_LEARN_THIS_SKILL);
showSkillList(trainer, player);
return false;
}
if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == CommonSkill.DIVINE_INSPIRATION.getId()))
{
// Hack check.
if (s.getGetLevel() > player.getLevel())
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_SKILL_LEVEL_REQUIREMENTS);
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", IllegalActionPunishmentType.NONE);
return false;
}
// First it checks that the skill require SP and the player has enough SP to learn it.
final int levelUpSp = s.getCalculatedLevelUpSp(player.getClassId(), player.getLearningClass());
if ((levelUpSp > 0) && (levelUpSp > player.getSp()))
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_LEARN_THIS_SKILL);
showSkillList(trainer, player);
return false;
}
if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == CommonSkill.DIVINE_INSPIRATION.getId()))
{
return true;
}
// Check for required skills.
if (!s.getPreReqSkills().isEmpty())
{
for (SkillHolder skill : s.getPreReqSkills())
{
if (player.getSkillLevel(skill.getSkillId()) != skill.getSkillLvl())
{
if (skill.getSkillId() == CommonSkill.ONYX_BEAST_TRANSFORMATION.getId())
{
player.sendPacket(SystemMessageId.YOU_MUST_LEARN_THE_ONYX_BEAST_SKILL_BEFORE_YOU_CAN_LEARN_FURTHER_SKILLS);
}
else
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
}
return false;
}
}
}
// Check for required items.
if (!s.getRequiredItems().isEmpty())
{
// Then checks that the player has all the items
long reqItemCount = 0;
for (ItemHolder item : s.getRequiredItems())
{
reqItemCount = player.getInventory().getInventoryItemCount(item.getId(), -1);
if (reqItemCount < item.getCount())
{
// Player doesn't have required item.
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
showSkillList(trainer, player);
return false;
}
}
// If the player has all required items, they are consumed.
for (ItemHolder itemIdCount : s.getRequiredItems())
{
if (!player.destroyItemByItemId("SkillLearn", itemIdCount.getId(), itemIdCount.getCount(), trainer, true))
{
Util.handleIllegalPlayerAction(player, "Somehow player " + player.getName() + ", level " + player.getLevel() + " lose required item Id: " + itemIdCount.getId() + " to learn skill while learning skill Id: " + _id + " level " + _level + "!", IllegalActionPunishmentType.NONE);
}
}
}
if (!s.getRemoveSkills().isEmpty())
{
s.getRemoveSkills().forEach(skillId ->
{
if (player.getSkillLevel(skillId) > 0)
{
final Skill skillToRemove = player.getKnownSkill(skillId);
if (skillToRemove != null)
{
player.removeSkill(skillToRemove, true);
}
}
});
}
// If the player has SP and all required items then consume SP.
if (levelUpSp > 0)
{
player.setSp(player.getSp() - levelUpSp);
final UserInfo ui = new UserInfo(player);
ui.addComponentType(UserInfoType.CURRENT_HPMPCP_EXP_SP);
player.sendPacket(ui);
}
return true;
}
// Check for required skills.
if (!s.getPreReqSkills().isEmpty())
{
for (SkillHolder skill : s.getPreReqSkills())
{
if (player.getSkillLevel(skill.getSkillId()) != skill.getSkillLvl())
{
if (skill.getSkillId() == CommonSkill.ONYX_BEAST_TRANSFORMATION.getId())
{
player.sendPacket(SystemMessageId.YOU_MUST_LEARN_THE_ONYX_BEAST_SKILL_BEFORE_YOU_CAN_LEARN_FURTHER_SKILLS);
}
else
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
}
return false;
}
}
}
// Check for required items.
if (!s.getRequiredItems().isEmpty())
{
// Then checks that the player has all the items
long reqItemCount = 0;
for (ItemHolder item : s.getRequiredItems())
{
reqItemCount = player.getInventory().getInventoryItemCount(item.getId(), -1);
if (reqItemCount < item.getCount())
{
// Player doesn't have required item.
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
showSkillList(trainer, player);
return false;
}
}
// If the player has all required items, they are consumed.
for (ItemHolder itemIdCount : s.getRequiredItems())
{
if (!player.destroyItemByItemId("SkillLearn", itemIdCount.getId(), itemIdCount.getCount(), trainer, true))
{
Util.handleIllegalPlayerAction(player, "Somehow player " + player.getName() + ", level " + player.getLevel() + " lose required item Id: " + itemIdCount.getId() + " to learn skill while learning skill Id: " + _id + " level " + _level + "!", IllegalActionPunishmentType.NONE);
}
}
}
if (!s.getRemoveSkills().isEmpty())
{
s.getRemoveSkills().forEach(skillId ->
{
if (player.getSkillLevel(skillId) > 0)
{
final Skill skillToRemove = player.getKnownSkill(skillId);
if (skillToRemove != null)
{
player.removeSkill(skillToRemove, true);
}
}
});
}
// If the player has SP and all required items then consume SP.
if (levelUpSp > 0)
{
player.setSp(player.getSp() - levelUpSp);
final UserInfo ui = new UserInfo(player);
ui.addComponentType(UserInfoType.CURRENT_HPMPCP_EXP_SP);
player.sendPacket(ui);
}
return true;
}
return false;
}

View File

@@ -124,15 +124,11 @@ public final class RequestActionUse extends L2GameClientPacket
}
// Don't allow to do some action if player is transformed
if (activeChar.isTransformed())
if (activeChar.isTransformed() && !(Arrays.binarySearch((activeChar.isTransformed() ? ExBasicActionList.ACTIONS_ON_TRANSFORM : ExBasicActionList.DEFAULT_ACTION_LIST), _actionId) >= 0))
{
final int[] allowedActions = activeChar.isTransformed() ? ExBasicActionList.ACTIONS_ON_TRANSFORM : ExBasicActionList.DEFAULT_ACTION_LIST;
if (!(Arrays.binarySearch(allowedActions, _actionId) >= 0))
{
sendPacket(ActionFailed.STATIC_PACKET);
_log.warning("Player " + activeChar + " used action which he does not have! Id = " + _actionId + " transform: " + activeChar.getTransformation());
return;
}
sendPacket(ActionFailed.STATIC_PACKET);
_log.warning("Player " + activeChar + " used action which he does not have! Id = " + _actionId + " transform: " + activeChar.getTransformation());
return;
}
final L2Summon pet = activeChar.getPet();
@@ -148,12 +144,7 @@ public final class RequestActionUse extends L2GameClientPacket
}
else
{
// Sit when arrive using next action.
// Creating next action class.
final NextAction nextAction = new NextAction(CtrlEvent.EVT_ARRIVED, CtrlIntention.AI_INTENTION_MOVE_TO, () -> useSit(activeChar, target));
// Binding next action to AI.
activeChar.getAI().setNextAction(nextAction);
activeChar.getAI().setNextAction((new NextAction(CtrlEvent.EVT_ARRIVED, CtrlIntention.AI_INTENTION_MOVE_TO, () -> useSit(activeChar, target))));
}
break;
}
@@ -184,12 +175,9 @@ public final class RequestActionUse extends L2GameClientPacket
}
case 16: // Attack (Pets)
{
if (validateSummon(pet, true))
if (validateSummon(pet, true) && pet.canAttack(_ctrlPressed))
{
if (pet.canAttack(_ctrlPressed))
{
pet.doAttack();
}
pet.doAttack();
}
break;
}
@@ -246,12 +234,9 @@ public final class RequestActionUse extends L2GameClientPacket
}
case 22: // Attack (Servitors)
{
if (validateSummon(servitor, false))
if (validateSummon(servitor, false) && servitor.canAttack(_ctrlPressed))
{
if (servitor.canAttack(_ctrlPressed))
{
servitor.doAttack();
}
servitor.doAttack();
}
break;
}
@@ -394,25 +379,19 @@ public final class RequestActionUse extends L2GameClientPacket
}
case 53: // Move to target (Servitors)
{
if (validateSummon(servitor, false))
if (validateSummon(servitor, false) && (target != null) && (servitor != target) && !servitor.isMovementDisabled())
{
if ((target != null) && (servitor != target) && !servitor.isMovementDisabled())
{
servitor.setFollowStatus(false);
servitor.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
}
servitor.setFollowStatus(false);
servitor.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
}
break;
}
case 54: // Move to target (Pets)
{
if (validateSummon(pet, true))
if (validateSummon(pet, true) && (target != null) && (pet != target) && !pet.isMovementDisabled())
{
if ((target != null) && (pet != target) && !pet.isMovementDisabled())
{
pet.setFollowStatus(false);
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
}
pet.setFollowStatus(false);
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
}
break;
}
@@ -435,23 +414,17 @@ public final class RequestActionUse extends L2GameClientPacket
}
case 67: // Steer
{
if (activeChar.isInAirShip())
if (activeChar.isInAirShip() && activeChar.getAirShip().setCaptain(activeChar))
{
if (activeChar.getAirShip().setCaptain(activeChar))
{
activeChar.broadcastUserInfo();
}
activeChar.broadcastUserInfo();
}
break;
}
case 68: // Cancel Control
{
if (activeChar.isInAirShip() && activeChar.getAirShip().isCaptain(activeChar))
if (activeChar.isInAirShip() && activeChar.getAirShip().isCaptain(activeChar) && activeChar.getAirShip().setCaptain(null))
{
if (activeChar.getAirShip().setCaptain(null))
{
activeChar.broadcastUserInfo();
}
activeChar.broadcastUserInfo();
}
break;
}
@@ -953,12 +926,9 @@ public final class RequestActionUse extends L2GameClientPacket
{
activeChar.getServitors().values().forEach(s ->
{
if (validateSummon(s, false))
if (validateSummon(s, false) && s.canAttack(_ctrlPressed))
{
if (s.canAttack(_ctrlPressed))
{
s.doAttack();
}
s.doAttack();
}
});
break;
@@ -967,13 +937,10 @@ public final class RequestActionUse extends L2GameClientPacket
{
activeChar.getServitors().values().forEach(s ->
{
if (validateSummon(s, false))
if (validateSummon(s, false) && (target != null) && (s != target) && !s.isMovementDisabled())
{
if ((target != null) && (s != target) && !s.isMovementDisabled())
{
s.setFollowStatus(false);
s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
}
s.setFollowStatus(false);
s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
}
});
break;
@@ -1427,12 +1394,7 @@ public final class RequestActionUse extends L2GameClientPacket
if (pet)
{
final L2Summon summon = activeChar.getPet();
if (!validateSummon(summon, pet))
{
return;
}
if (!canControl(summon))
if (!validateSummon(summon, pet) || !canControl(summon))
{
return;
}
@@ -1487,13 +1449,10 @@ public final class RequestActionUse extends L2GameClientPacket
return;
}
if (summon instanceof L2BabyPetInstance)
if ((summon instanceof L2BabyPetInstance) && !((L2BabyPetInstance) summon).isInSupportMode())
{
if (!((L2BabyPetInstance) summon).isInSupportMode())
{
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
return;
}
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
return;
}
final Skill skill = summon.getTemplate().getParameters().getSkillHolder(skillName).getSkill();
@@ -1511,22 +1470,16 @@ public final class RequestActionUse extends L2GameClientPacket
private boolean canControl(L2Summon summon)
{
if (summon instanceof L2BabyPetInstance)
if ((summon instanceof L2BabyPetInstance) && !((L2BabyPetInstance) summon).isInSupportMode())
{
if (!((L2BabyPetInstance) summon).isInSupportMode())
{
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
return false;
}
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
return false;
}
if (summon.isPet())
if (summon.isPet() && ((summon.getLevel() - getActiveChar().getLevel()) > 20))
{
if ((summon.getLevel() - getActiveChar().getLevel()) > 20)
{
sendPacket(SystemMessageId.YOUR_PET_IS_TOO_HIGH_LEVEL_TO_CONTROL);
return false;
}
sendPacket(SystemMessageId.YOUR_PET_IS_TOO_HIGH_LEVEL_TO_CONTROL);
return false;
}
return true;
}

View File

@@ -87,14 +87,12 @@ public final class RequestAnswerJoinParty extends L2GameClientPacket
requestor.sendPacket(sm);
return;
}
player.joinParty(requestor.getParty());
}
else
{
requestor.setParty(new L2Party(requestor, requestor.getPartyDistributionType()));
player.joinParty(requestor.getParty());
}
player.joinParty(requestor.getParty());
if (requestor.isInPartyMatchRoom() && player.isInPartyMatchRoom())
{
final PartyMatchRoomList list = PartyMatchRoomList.getInstance();

View File

@@ -46,153 +46,150 @@ public final class RequestAutoSoulShot extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
if ((activeChar == null) || (activeChar.getPrivateStoreType() != PrivateStoreType.NONE) || (activeChar.getActiveRequester() != null) || activeChar.isDead())
{
return;
}
if ((activeChar.getPrivateStoreType() == PrivateStoreType.NONE) && (activeChar.getActiveRequester() == null) && !activeChar.isDead())
final L2ItemInstance item = activeChar.getInventory().getItemByItemId(_itemId);
if (item == null)
{
final L2ItemInstance item = activeChar.getInventory().getItemByItemId(_itemId);
if (item == null)
return;
}
if (_type == 1)
{
if (!activeChar.getInventory().canManipulateWithItemId(item.getId()))
{
activeChar.sendMessage("Cannot use this item.");
return;
}
if (_type == 1)
if (isSummonShot(item.getItem()))
{
if (!activeChar.getInventory().canManipulateWithItemId(item.getId()))
if (activeChar.hasSummon())
{
activeChar.sendMessage("Cannot use this item.");
return;
}
if (isSummonShot(item.getItem()))
{
if (activeChar.hasSummon())
final boolean isSoulshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT;
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT;
if (isSoulshot)
{
final boolean isSoulshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT;
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT;
if (isSoulshot)
{
int soulshotCount = 0;
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
soulshotCount += pet.getSoulShotsPerHit();
}
for (L2Summon servitor : activeChar.getServitors().values())
{
soulshotCount += servitor.getSoulShotsPerHit();
}
if (soulshotCount > item.getCount())
{
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
return;
}
}
else if (isSpiritshot)
{
int spiritshotCount = 0;
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
spiritshotCount += pet.getSpiritShotsPerHit();
}
for (L2Summon servitor : activeChar.getServitors().values())
{
spiritshotCount += servitor.getSpiritShotsPerHit();
}
if (spiritshotCount > item.getCount())
{
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
return;
}
}
// Activate shots
activeChar.addAutoSoulShot(_itemId);
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 2 : 3));
// Send message
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
sm.addItemName(item);
activeChar.sendPacket(sm);
// Recharge summon's shots
int soulshotCount = 0;
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
pet.rechargeShots(isSoulshot, isSpiritshot);
soulshotCount += pet.getSoulShotsPerHit();
}
activeChar.getServitors().values().forEach(s ->
for (L2Summon servitor : activeChar.getServitors().values())
{
s.rechargeShots(isSoulshot, isSpiritshot);
});
soulshotCount += servitor.getSoulShotsPerHit();
}
if (soulshotCount > item.getCount())
{
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
return;
}
}
else
else if (isSpiritshot)
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR_OR_PET_AND_THEREFORE_CANNOT_USE_THE_AUTOMATIC_USE_FUNCTION);
}
}
else if (isPlayerShot(item.getItem()))
{
final boolean isSoulshot = (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) || (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT);
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT;
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getCrystalTypePlus()))
{
activeChar.sendPacket(isSoulshot ? SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON : SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE);
return;
int spiritshotCount = 0;
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
spiritshotCount += pet.getSpiritShotsPerHit();
}
for (L2Summon servitor : activeChar.getServitors().values())
{
spiritshotCount += servitor.getSpiritShotsPerHit();
}
if (spiritshotCount > item.getCount())
{
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
return;
}
}
// Activate shots
activeChar.addAutoSoulShot(_itemId);
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 0 : 1));
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 2 : 3));
// Send message
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
sm.addItemName(item);
activeChar.sendPacket(sm);
// Recharge player's shots
activeChar.rechargeShots(isSoulshot, isSpiritshot);
// Recharge summon's shots
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
pet.rechargeShots(isSoulshot, isSpiritshot);
}
activeChar.getServitors().values().forEach(s ->
{
s.rechargeShots(isSoulshot, isSpiritshot);
});
}
else
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR_OR_PET_AND_THEREFORE_CANNOT_USE_THE_AUTOMATIC_USE_FUNCTION);
}
}
else if (_type == 0)
else if (isPlayerShot(item.getItem()))
{
// Cancel auto shots
activeChar.removeAutoSoulShot(_itemId);
switch (item.getEtcItem().getDefaultAction())
final boolean isSoulshot = (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) || (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT);
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT;
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getCrystalTypePlus()))
{
case SOULSHOT:
case FISHINGSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 0));
break;
}
case SPIRITSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 1));
break;
}
case SUMMON_SOULSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 2));
break;
}
case SUMMON_SPIRITSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 3));
break;
}
activeChar.sendPacket(isSoulshot ? SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON : SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE);
return;
}
// Activate shots
activeChar.addAutoSoulShot(_itemId);
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 0 : 1));
// Send message
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
sm.addItemName(item);
activeChar.sendPacket(sm);
// Recharge player's shots
activeChar.rechargeShots(isSoulshot, isSpiritshot);
}
}
else if (_type == 0)
{
// Cancel auto shots
activeChar.removeAutoSoulShot(_itemId);
switch (item.getEtcItem().getDefaultAction())
{
case SOULSHOT:
case FISHINGSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 0));
break;
}
case SPIRITSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 1));
break;
}
case SUMMON_SOULSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 2));
break;
}
case SUMMON_SPIRITSHOT:
{
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 3));
break;
}
}
// Send message
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
sm.addItemName(item);
activeChar.sendPacket(sm);
}
}
@Override

View File

@@ -190,14 +190,11 @@ public final class RequestBuyItem extends L2GameClientPacket
return;
}
if (product.hasLimitedStock())
// trying to buy more then available
if (product.hasLimitedStock() && (i.getCount() > product.getCount()))
{
// trying to buy more then available
if (i.getCount() > product.getCount())
{
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if ((MAX_ADENA / i.getCount()) < price)

View File

@@ -80,19 +80,13 @@ public class RequestChangeAttributeItem extends L2GameClientPacket
return;
}
if (!item.isWeapon())
if (!item.isWeapon() || (_newAttributeID == -1))
{
player.removeRequest(request.getClass());
player.sendPacket(new ExChangeAttributeItemList(player, _attributeOID));
return;
}
if (_newAttributeID == -1)
{
player.removeRequest(request.getClass());
player.sendPacket(new ExChangeAttributeItemList(player, _attributeOID));
return;
}
final L2ItemInstance attribute = player.getInventory().getItemByObjectId(_attributeOID);
player.getInventory().destroyItem("ChangingAttribute", _attributeOID, 1, player, null);

View File

@@ -81,5 +81,4 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
{
return _C__D0_27_REQUESTCONFIRMREFINERITEM;
}
}

View File

@@ -247,8 +247,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
for (ItemChanceHolder holder : items)
{
final double rand = Rnd.nextDouble() * 100;
if (rand < holder.getChance())
if ((Rnd.nextDouble() * 100) < holder.getChance())
{
// add crystals
final L2ItemInstance createdItem = activeChar.getInventory().addItem("Crystalize", holder.getId(), holder.getCount(), activeChar, activeChar);

View File

@@ -95,22 +95,17 @@ public final class RequestDestroyItem extends L2GameClientPacket
}
// Cannot discard item that the skill is consuming
if (activeChar.isCastingNow())
if (activeChar.isCastingNow() && (activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == itemToRemove.getId()))
{
if ((activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == itemToRemove.getId()))
{
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
// Cannot discard item that the skill is consuming
if (activeChar.isCastingSimultaneouslyNow())
if (activeChar.isCastingSimultaneouslyNow() && (activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == itemToRemove.getId()))
{
if ((activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == itemToRemove.getId()))
{
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
final int itemId = itemToRemove.getId();

View File

@@ -63,5 +63,4 @@ public class RequestDismissPartyRoom extends L2GameClientPacket
{
return _C__D0_0A_REQUESTDISMISSPARTYROOM;
}
}

View File

@@ -136,23 +136,17 @@ public final class RequestDropItem extends L2GameClientPacket
}
// Cannot discard item that the skill is consuming
if (activeChar.isCastingNow())
if (activeChar.isCastingNow() && (activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == item.getId()))
{
if ((activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == item.getId()))
{
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
// Cannot discard item that the skill is consuming
if (activeChar.isCastingSimultaneouslyNow())
if (activeChar.isCastingSimultaneouslyNow() && (activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == item.getId()))
{
if ((activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == item.getId()))
{
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
return;
}
if ((L2Item.TYPE2_QUEST == item.getItem().getType2()) && !activeChar.canOverrideCond(PcCondOverride.DROP_ALL_ITEMS))
@@ -198,8 +192,7 @@ public final class RequestDropItem extends L2GameClientPacket
activeChar.sendPacket(iu);
activeChar.broadcastUserInfo();
final ItemList il = new ItemList(activeChar, true);
activeChar.sendPacket(il);
activeChar.sendPacket((new ItemList(activeChar, true)));
}
final L2ItemInstance dropedItem = activeChar.dropItem("Drop", _objectId, _count, _x, _y, _z, null, false, false);

View File

@@ -47,7 +47,7 @@ public final class RequestDuelStart extends L2GameClientPacket
{
final L2PcInstance activeChar = getClient().getActiveChar();
final L2PcInstance targetChar = L2World.getInstance().getPlayer(_player);
final boolean isPartyDuel = _partyDuel == 1 ? true : false;
final boolean isPartyDuel = _partyDuel == 1;
if ((activeChar == null) || (targetChar == null))
{
return;
@@ -73,11 +73,7 @@ public final class RequestDuelStart extends L2GameClientPacket
return;
}
// Check if duel is possible
if (!DuelManager.canDuel(activeChar, activeChar, isPartyDuel))
{
return;
}
if (!DuelManager.canDuel(activeChar, targetChar, isPartyDuel))
if (!DuelManager.canDuel(activeChar, activeChar, isPartyDuel) || !DuelManager.canDuel(activeChar, targetChar, isPartyDuel))
{
return;
}

View File

@@ -149,16 +149,13 @@ public final class RequestEnchantItem extends L2GameClientPacket
}
// attempting to destroy support if exist
if (support != null)
if ((support != null) && (activeChar.getInventory().destroyItem("Enchant", support.getObjectId(), 1, activeChar, item) == null))
{
if (activeChar.getInventory().destroyItem("Enchant", support.getObjectId(), 1, activeChar, item) == null)
{
activeChar.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a support item he doesn't have", Config.DEFAULT_PUNISH);
activeChar.removeRequest(request.getClass());
activeChar.sendPacket(new EnchantResult(EnchantResult.ERROR, 0, 0));
return;
}
activeChar.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a support item he doesn't have", Config.DEFAULT_PUNISH);
activeChar.removeRequest(request.getClass());
activeChar.sendPacket(new EnchantResult(EnchantResult.ERROR, 0, 0));
return;
}
final InventoryUpdate iu = new InventoryUpdate();

View File

@@ -40,40 +40,42 @@ public final class RequestExAcceptJoinMPCC extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance player = getClient().getActiveChar();
if (player != null)
if (player == null)
{
final L2PcInstance requestor = player.getActiveRequester();
SystemMessage sm;
if (requestor == null)
{
return;
}
if (_response == 1)
{
boolean newCc = false;
if (!requestor.getParty().isInCommandChannel())
{
new L2CommandChannel(requestor); // Create new CC
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_COMMAND_CHANNEL_HAS_BEEN_FORMED);
requestor.sendPacket(sm);
newCc = true;
}
requestor.getParty().getCommandChannel().addParty(player.getParty());
if (!newCc)
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_JOINED_THE_COMMAND_CHANNEL);
player.sendPacket(sm);
}
}
else
{
requestor.sendMessage("The player declined to join your Command Channel.");
}
player.setActiveRequester(null);
requestor.onTransactionResponse();
return;
}
final L2PcInstance requestor = player.getActiveRequester();
SystemMessage sm;
if (requestor == null)
{
return;
}
if (_response == 1)
{
boolean newCc = false;
if (!requestor.getParty().isInCommandChannel())
{
new L2CommandChannel(requestor); // Create new CC
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_COMMAND_CHANNEL_HAS_BEEN_FORMED);
requestor.sendPacket(sm);
newCc = true;
}
requestor.getParty().getCommandChannel().addParty(player.getParty());
if (!newCc)
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_JOINED_THE_COMMAND_CHANNEL);
player.sendPacket(sm);
}
}
else
{
requestor.sendMessage("The player declined to join your Command Channel.");
}
player.setActiveRequester(null);
requestor.onTransactionResponse();
}
@Override

View File

@@ -38,12 +38,7 @@ public class RequestExAddContactToContactList extends L2GameClientPacket
@Override
protected void runImpl()
{
if (!Config.ALLOW_MAIL)
{
return;
}
if (_name == null)
if (!Config.ALLOW_MAIL || (_name == null))
{
return;
}
@@ -54,8 +49,7 @@ public class RequestExAddContactToContactList extends L2GameClientPacket
return;
}
final boolean charAdded = activeChar.getContactList().add(_name);
activeChar.sendPacket(new ExConfirmAddingContact(_name, charAdded));
activeChar.sendPacket(new ExConfirmAddingContact(_name, activeChar.getContactList().add(_name)));
}
@Override

View File

@@ -49,86 +49,83 @@ public final class RequestExAskJoinMPCC extends L2GameClientPacket
}
final L2PcInstance player = L2World.getInstance().getPlayer(_name);
if (player == null)
if ((player == null) || (activeChar.isInParty() && player.isInParty() && activeChar.getParty().equals(player.getParty())))
{
return;
}
// invite yourself? ;)
if (activeChar.isInParty() && player.isInParty() && activeChar.getParty().equals(player.getParty()))
if (!activeChar.isInParty())
{
return;
}
SystemMessage sm;
// activeChar is in a Party?
if (activeChar.isInParty())
final L2Party activeParty = activeChar.getParty();
// activeChar is PartyLeader? && activeChars Party is already in a CommandChannel?
if (activeParty.getLeader().equals(activeChar))
{
final L2Party activeParty = activeChar.getParty();
// activeChar is PartyLeader? && activeChars Party is already in a CommandChannel?
if (activeParty.getLeader().equals(activeChar))
// if activeChars Party is in CC, is activeChar CCLeader?
if (activeParty.isInCommandChannel() && activeParty.getCommandChannel().getLeader().equals(activeChar))
{
// if activeChars Party is in CC, is activeChar CCLeader?
if (activeParty.isInCommandChannel() && activeParty.getCommandChannel().getLeader().equals(activeChar))
// in CC and the CCLeader
// target in a party?
if (player.isInParty())
{
// in CC and the CCLeader
// target in a party?
if (player.isInParty())
// targets party already in a CChannel?
if (player.getParty().isInCommandChannel())
{
// targets party already in a CChannel?
if (player.getParty().isInCommandChannel())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
sm.addString(player.getName());
activeChar.sendPacket(sm);
}
else
{
// ready to open a new CC
// send request to targets Party's PartyLeader
askJoinMPCC(activeChar, player);
}
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
sm.addString(player.getName());
activeChar.sendPacket(sm);
}
else
{
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
// ready to open a new CC
// send request to targets Party's PartyLeader
askJoinMPCC(activeChar, player);
}
}
else if (activeParty.isInCommandChannel() && !activeParty.getCommandChannel().getLeader().equals(activeChar))
{
// in CC, but not the CCLeader
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
activeChar.sendPacket(sm);
}
else
{
// target in a party?
if (player.isInParty())
{
// targets party already in a CChannel?
if (player.getParty().isInCommandChannel())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
sm.addString(player.getName());
activeChar.sendPacket(sm);
}
else
{
// ready to open a new CC
// send request to targets Party's PartyLeader
askJoinMPCC(activeChar, player);
}
}
else
{
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
}
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
}
}
else if (activeParty.isInCommandChannel() && !activeParty.getCommandChannel().getLeader().equals(activeChar))
{
// in CC, but not the CCLeader
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
activeChar.sendPacket(sm);
}
else
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
// target in a party?
if (player.isInParty())
{
// targets party already in a CChannel?
if (player.getParty().isInCommandChannel())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
sm.addString(player.getName());
activeChar.sendPacket(sm);
}
else
{
// ready to open a new CC
// send request to targets Party's PartyLeader
askJoinMPCC(activeChar, player);
}
}
else
{
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
}
}
}
else
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
}
}
private void askJoinMPCC(L2PcInstance requestor, L2PcInstance target)

View File

@@ -37,12 +37,7 @@ public class RequestExDeleteContactFromContactList extends L2GameClientPacket
@Override
protected void runImpl()
{
if (!Config.ALLOW_MAIL)
{
return;
}
if (_name == null)
if (!Config.ALLOW_MAIL || (_name == null))
{
return;
}

View File

@@ -258,12 +258,7 @@ public class RequestExEnchantItemAttribute extends L2GameClientPacket
player.sendPacket(SystemMessageId.YOU_HAVE_FAILED_TO_ADD_ELEMENTAL_POWER);
}
int result = 0;
if (successfulAttempts == 0)
{
// Failed
result = 2;
}
final int result = successfulAttempts == 0 ? 2 : 0;
// Stone must be removed
if (stone.getCount() == 0)

View File

@@ -364,8 +364,7 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
}
else
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL);
player.sendPacket(sm);
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL));
}
}
else if (_type == 2) // untrain
@@ -414,13 +413,10 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
if (player.getSp() >= requiredSp)
{
final L2ItemInstance spb = player.getInventory().getItemByItemId(reqItemId);
if (Config.ES_SP_BOOK_NEEDED)
if (Config.ES_SP_BOOK_NEEDED && (spb == null))
{
if (spb == null)
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_SKILL_ROUTE_CHANGE);
return;
}
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_SKILL_ROUTE_CHANGE);
return;
}
if (player.getInventory().getAdena() < requireditems)
@@ -429,8 +425,7 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
return;
}
boolean check;
check = player.getStat().removeExpAndSp(0, requiredSp, false);
boolean check = player.getStat().removeExpAndSp(0, requiredSp, false);
if (Config.ES_SP_BOOK_NEEDED)
{
check &= player.destroyItem("Consume", spb.getObjectId(), 1, player, true);
@@ -503,8 +498,7 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
}
else
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL);
player.sendPacket(sm);
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL));
}
}
else if (_type == 4) // 100% enchant

View File

@@ -55,13 +55,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
}
final L2ItemInstance targetItem = activeChar.getInventory().getItemByObjectId(_objectId);
if (targetItem == null)
{
return;
}
if ((targetItem.getElementals() == null) || (targetItem.getElemental(_element) == null))
if ((targetItem == null) || (targetItem.getElementals() == null) || (targetItem.getElemental(_element) == null))
{
return;
}

View File

@@ -41,22 +41,23 @@ public class RequestExRqItemLink extends L2GameClientPacket
protected void runImpl()
{
final L2GameClient client = getClient();
if (client != null)
if (client == null)
{
final L2Object object = L2World.getInstance().findObject(_objectId);
if (object instanceof L2ItemInstance)
return;
}
final L2Object object = L2World.getInstance().findObject(_objectId);
if (object instanceof L2ItemInstance)
{
if (((L2ItemInstance) object).isPublished())
{
final L2ItemInstance item = (L2ItemInstance) object;
if (item.isPublished())
client.sendPacket(new ExRpItemLink((L2ItemInstance) object));
}
else
{
if (Config.DEBUG)
{
client.sendPacket(new ExRpItemLink(item));
}
else
{
if (Config.DEBUG)
{
_log.info(getClient() + " requested item link for item which wasnt published! ID:" + _objectId);
}
_log.info(getClient() + " requested item link for item which wasnt published! ID:" + _objectId);
}
}
}

View File

@@ -104,13 +104,7 @@ public final class RequestGiveItemToPet extends L2GameClientPacket
return;
}
if (!pet.getInventory().validateCapacity(item))
{
player.sendPacket(SystemMessageId.YOUR_PET_CANNOT_CARRY_ANY_MORE_ITEMS);
return;
}
if (!pet.getInventory().validateWeight(item, _amount))
if (!pet.getInventory().validateCapacity(item) || !pet.getInventory().validateWeight(item, _amount))
{
player.sendPacket(SystemMessageId.YOUR_PET_CANNOT_CARRY_ANY_MORE_ITEMS);
return;

View File

@@ -43,12 +43,7 @@ public final class RequestHennaEquip extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getActiveChar();
if (activeChar == null)
{
return;
}
if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("HennaEquip"))
if ((activeChar == null) || !getClient().getFloodProtectors().getTransaction().tryPerformAction("HennaEquip"))
{
return;
}

View File

@@ -41,12 +41,7 @@ public final class RequestInfoItemAuction extends L2GameClientPacket
protected final void runImpl()
{
final L2PcInstance activeChar = super.getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (!getClient().getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
if ((activeChar == null) || !getClient().getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
{
return;
}

View File

@@ -37,8 +37,7 @@ public final class RequestItemList extends L2GameClientPacket
{
if ((getClient() != null) && (getClient().getActiveChar() != null) && !getClient().getActiveChar().isInventoryDisabled())
{
final ItemList il = new ItemList(getClient().getActiveChar(), true);
sendPacket(il);
sendPacket((new ItemList(getClient().getActiveChar(), true)));
}
}

View File

@@ -64,11 +64,7 @@ public final class RequestJoinAlly extends L2GameClientPacket
final L2PcInstance target = ob;
final L2Clan clan = activeChar.getClan();
if (!clan.checkAllyJoinCondition(activeChar, target))
{
return;
}
if (!activeChar.getRequest().setRequest(target, this))
if (!clan.checkAllyJoinCondition(activeChar, target) || !activeChar.getRequest().setRequest(target, this))
{
return;
}

View File

@@ -124,13 +124,10 @@ public final class RequestJoinParty extends L2GameClientPacket
return;
}
if (target.isInOlympiadMode() || requestor.isInOlympiadMode())
if ((target.isInOlympiadMode() || requestor.isInOlympiadMode()) && ((target.isInOlympiadMode() != requestor.isInOlympiadMode()) || (target.getOlympiadGameId() != requestor.getOlympiadGameId()) || (target.getOlympiadSide() != requestor.getOlympiadSide())))
{
if ((target.isInOlympiadMode() != requestor.isInOlympiadMode()) || (target.getOlympiadGameId() != requestor.getOlympiadGameId()) || (target.getOlympiadSide() != requestor.getOlympiadSide()))
{
requestor.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
return;
}
requestor.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
return;
}
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BEEN_INVITED_TO_THE_PARTY);

View File

@@ -62,12 +62,7 @@ public final class RequestJoinPledge extends L2GameClientPacket
return;
}
if (!clan.checkClanJoinCondition(activeChar, target, _pledgeType))
{
return;
}
if (!activeChar.getRequest().setRequest(target, this))
if (!clan.checkClanJoinCondition(activeChar, target, _pledgeType) || !activeChar.getRequest().setRequest(target, this))
{
return;
}

View File

@@ -94,23 +94,25 @@ public final class RequestJoinSiege extends L2GameClientPacket
}
final SiegableHall hall = CHSiegeManager.getInstance().getSiegableHall(_castleId);
if (hall != null)
if (hall == null)
{
if (_isJoining == 1)
{
if (System.currentTimeMillis() < clan.getDissolvingExpiryTime())
{
activeChar.sendPacket(SystemMessageId.YOUR_CLAN_MAY_NOT_REGISTER_TO_PARTICIPATE_IN_A_SIEGE_WHILE_UNDER_A_GRACE_PERIOD_OF_THE_CLAN_S_DISSOLUTION);
return;
}
CHSiegeManager.getInstance().registerClan(clan, hall, activeChar);
}
else
{
CHSiegeManager.getInstance().unRegisterClan(clan, hall);
}
activeChar.sendPacket(new SiegeInfo(hall));
return;
}
if (_isJoining == 1)
{
if (System.currentTimeMillis() < clan.getDissolvingExpiryTime())
{
activeChar.sendPacket(SystemMessageId.YOUR_CLAN_MAY_NOT_REGISTER_TO_PARTICIPATE_IN_A_SIEGE_WHILE_UNDER_A_GRACE_PERIOD_OF_THE_CLAN_S_DISSOLUTION);
return;
}
CHSiegeManager.getInstance().registerClan(clan, hall, activeChar);
}
else
{
CHSiegeManager.getInstance().unRegisterClan(clan, hall);
}
activeChar.sendPacket(new SiegeInfo(hall));
}
@Override

View File

@@ -57,5 +57,4 @@ public class RequestListPartyMatchingWaitingRoom extends L2GameClientPacket
{
return _C__D0_31_REQUESTLISTPARTYMATCHINGWAITINGROOM;
}
}

View File

@@ -99,8 +99,7 @@ public final class RequestOustPledgeMember extends L2GameClientPacket
if (member.isOnline())
{
final L2PcInstance player = member.getPlayerInstance();
player.sendPacket(SystemMessageId.YOU_HAVE_RECENTLY_BEEN_DISMISSED_FROM_A_CLAN_YOU_ARE_NOT_ALLOWED_TO_JOIN_ANOTHER_CLAN_FOR_24_HOURS);
member.getPlayerInstance().sendPacket(SystemMessageId.YOU_HAVE_RECENTLY_BEEN_DISMISSED_FROM_A_CLAN_YOU_ARE_NOT_ALLOWED_TO_JOIN_ANOTHER_CLAN_FOR_24_HOURS);
}
}

View File

@@ -16,7 +16,6 @@
*/
package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.serverpackets.PackageSendableList;
/**
@@ -37,8 +36,7 @@ public class RequestPackageSendableItemList extends L2GameClientPacket
@Override
public void runImpl()
{
final L2ItemInstance[] items = getClient().getActiveChar().getInventory().getAvailableItems(true, true, true);
sendPacket(new PackageSendableList(items, _objectID));
sendPacket(new PackageSendableList(getClient().getActiveChar().getInventory().getAvailableItems(true, true, true), _objectID));
}
@Override

View File

@@ -89,9 +89,7 @@ public final class RequestPartyMatchConfig extends L2GameClientPacket
PartyMatchWaitingList.getInstance().addPlayer(_activeChar);
// Send Room list
final ListPartyWating matchList = new ListPartyWating(_activeChar, _auto, _loc, _lvl);
_activeChar.sendPacket(matchList);
_activeChar.sendPacket((new ListPartyWating(_activeChar, _auto, _loc, _lvl)));
}
}

View File

@@ -99,18 +99,12 @@ public class RequestPartyMatchList extends L2GameClientPacket
{
for (L2PcInstance ptmember : _activeChar.getParty().getMembers())
{
if (ptmember == null)
{
continue;
}
if (ptmember == _activeChar)
if ((ptmember == null) || (ptmember == _activeChar))
{
continue;
}
ptmember.setPartyRoom(_maxid);
// ptmember.setPartyMatching(1);
_room.addMember(ptmember);
}
}

View File

@@ -48,8 +48,7 @@ public final class RequestPetGetItem extends L2GameClientPacket
return;
}
final int castleId = MercTicketManager.getInstance().getTicketCastleId(item.getId());
if (castleId > 0)
if (MercTicketManager.getInstance().getTicketCastleId(item.getId()) > 0)
{
sendPacket(ActionFailed.STATIC_PACKET);
return;

View File

@@ -78,13 +78,9 @@ public final class RequestPetUseItem extends L2GameClientPacket
// If the item has reuse time and it has not passed.
// Message from reuse delay must come from item.
final int reuseDelay = item.getReuseDelay();
if (reuseDelay > 0)
if ((reuseDelay > 0) && (pet.getItemRemainingReuseTime(item.getObjectId()) > 0))
{
final long reuse = pet.getItemRemainingReuseTime(item.getObjectId());
if (reuse > 0)
{
return;
}
return;
}
if (!item.isEquipped() && !item.getItem().checkCondition(pet, pet, true))

View File

@@ -79,8 +79,7 @@ public final class RequestPetitionCancel extends L2GameClientPacket
activeChar.sendPacket(sm);
// Notify all GMs that the player's pending petition has been cancelled.
final String msgContent = activeChar.getName() + " has canceled a pending petition.";
AdminData.getInstance().broadcastToGMs(new CreatureSay(activeChar.getObjectId(), ChatType.HERO_VOICE, "Petition System", msgContent));
AdminData.getInstance().broadcastToGMs(new CreatureSay(activeChar.getObjectId(), ChatType.HERO_VOICE, "Petition System", (activeChar.getName() + " has canceled a pending petition.")));
}
else
{

View File

@@ -71,5 +71,4 @@ public class RequestPledgeDraftListSearch extends L2GameClientPacket
{
return _C__D0_DC_REQUESTPLEDGEDRAFTLISTSEARCH;
}
}

View File

@@ -45,13 +45,15 @@ public final class RequestPledgeMemberList extends L2GameClientPacket
}
final L2Clan clan = activeChar.getClan();
if (clan != null)
if (clan == null)
{
final PledgeShowMemberListAll pm = new PledgeShowMemberListAll(clan);
activeChar.sendPacket(pm);
activeChar.sendPacket(new PledgeSkillList(clan));
activeChar.broadcastUserInfo();
return;
}
final PledgeShowMemberListAll pm = new PledgeShowMemberListAll(clan);
activeChar.sendPacket(pm);
activeChar.sendPacket(new PledgeSkillList(clan));
activeChar.broadcastUserInfo();
}
@Override

View File

@@ -64,9 +64,7 @@ public class RequestPledgeWaitingApply extends L2GameClientPacket
return;
}
final PledgeApplicantInfo info = new PledgeApplicantInfo(activeChar.getObjectId(), activeChar.getName(), activeChar.getLevel(), _karma, _clanId, _message);
if (ClanEntryManager.getInstance().addPlayerApplicationToClan(_clanId, info))
if (ClanEntryManager.getInstance().addPlayerApplicationToClan(_clanId, (new PledgeApplicantInfo(activeChar.getObjectId(), activeChar.getName(), activeChar.getLevel(), _karma, _clanId, _message))))
{
activeChar.sendPacket(new ExPledgeRecruitApplyInfo(ClanEntryStatus.WAITING));
@@ -90,5 +88,4 @@ public class RequestPledgeWaitingApply extends L2GameClientPacket
{
return _C__D0_D7_REQUESTPLEDGEWAITINGAPPLY;
}
}

View File

@@ -52,5 +52,4 @@ public class RequestPledgeWaitingList extends L2GameClientPacket
{
return _C__D0_D9_REQUESTPLEDGEDWAITINGLIST;
}
}

View File

@@ -40,19 +40,12 @@ public final class RequestPledgeWarList extends L2GameClientPacket
@Override
protected void runImpl()
{
// _log.info("C5: RequestPledgeWarList d:"+_unk1);
// _log.info("C5: RequestPledgeWarList d:"+_tab);
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (activeChar.getClan() == null)
if ((activeChar == null) || (activeChar.getClan() == null))
{
return;
}
// do we need powers to do that??
activeChar.sendPacket(new PledgeReceiveWarList(activeChar.getClan(), _tab));
}

View File

@@ -202,15 +202,9 @@ public final class RequestPreviewItem extends L2GameClientPacket
}
}
}
else if (template instanceof L2Armor)
else if ((template instanceof L2Armor) && (activeChar.getRace().ordinal() == 5) && ((template.getItemType() == ArmorType.HEAVY) || (template.getItemType() == ArmorType.MAGIC)))
{
if (activeChar.getRace().ordinal() == 5)
{
if ((template.getItemType() == ArmorType.HEAVY) || (template.getItemType() == ArmorType.MAGIC))
{
continue;
}
}
continue;
}
if (itemList.containsKey(slot))

View File

@@ -116,13 +116,10 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
return;
}
if (Config.FACTION_SYSTEM_ENABLED)
if (Config.FACTION_SYSTEM_ENABLED && ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil())))
{
if ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil()))
{
player.sendMessage("You cant buy from different faction members.");
return;
}
player.sendMessage("You cant buy from different faction members.");
return;
}
final TradeList storeList = storePlayer.getSellList();
@@ -138,14 +135,11 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
return;
}
if (storePlayer.getPrivateStoreType() == PrivateStoreType.PACKAGE_SELL)
if ((storePlayer.getPrivateStoreType() == PrivateStoreType.PACKAGE_SELL) && (storeList.getItemCount() > _items.size()))
{
if (storeList.getItemCount() > _items.size())
{
final String msgErr = "[RequestPrivateStoreBuy] player " + getClient().getActiveChar().getName() + " tried to buy less items than sold by package-sell, ban this player for bot usage!";
Util.handleIllegalPlayerAction(getClient().getActiveChar(), msgErr, Config.DEFAULT_PUNISH);
return;
}
final String msgErr = "[RequestPrivateStoreBuy] player " + getClient().getActiveChar().getName() + " tried to buy less items than sold by package-sell, ban this player for bot usage!";
Util.handleIllegalPlayerAction(getClient().getActiveChar(), msgErr, Config.DEFAULT_PUNISH);
return;
}
final int result = storeList.privateStoreBuy(player, _items);

View File

@@ -48,7 +48,6 @@ public final class RequestPrivateStoreManageSell extends L2GameClientPacket
if (player.isAlikeDead() || player.isInOlympiadMode())
{
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
}

View File

@@ -139,13 +139,10 @@ public final class RequestPrivateStoreSell extends L2GameClientPacket
return;
}
if (Config.FACTION_SYSTEM_ENABLED)
if (Config.FACTION_SYSTEM_ENABLED && ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil())))
{
if ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil()))
{
player.sendMessage("You cant sell on different faction members.");
return;
}
player.sendMessage("You cant sell on different faction members.");
return;
}
// Update offline trade record, if realtime saving is enabled

View File

@@ -136,7 +136,7 @@ public class RequestProcureCropList extends L2GameClientPacket
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
return;
}
else if (!player.getInventory().validateCapacity(slots))
if (!player.getInventory().validateCapacity(slots))
{
player.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL);
return;

View File

@@ -35,8 +35,7 @@ public final class RequestQuestList extends L2GameClientPacket
@Override
protected void runImpl()
{
final QuestList ql = new QuestList();
sendPacket(ql);
sendPacket(new QuestList());
}
@Override

View File

@@ -40,12 +40,7 @@ public final class RequestRecipeBookDestroy extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
if ((activeChar == null) || !getClient().getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
{
return;
}

View File

@@ -40,8 +40,7 @@ public final class RequestRecipeItemMakeInfo extends L2GameClientPacket
return;
}
final RecipeItemMakeInfo response = new RecipeItemMakeInfo(_id, player);
sendPacket(response);
sendPacket((new RecipeItemMakeInfo(_id, player)));
}
@Override

View File

@@ -39,12 +39,7 @@ public final class RequestRecipeItemMakeSelf extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (!getClient().getFloodProtectors().getManufacture().tryPerformAction("RecipeMakeSelf"))
if ((activeChar == null) || !getClient().getFloodProtectors().getManufacture().tryPerformAction("RecipeMakeSelf"))
{
return;
}

View File

@@ -57,12 +57,7 @@ public final class RequestRecipeShopMakeItem extends L2GameClientPacket
}
final L2PcInstance manufacturer = L2World.getInstance().getPlayer(_id);
if (manufacturer == null)
{
return;
}
if ((manufacturer.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
if ((manufacturer == null) || ((manufacturer.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1)))
{
return;
}

View File

@@ -42,7 +42,7 @@ public final class RequestRecipeShopManagePrev extends L2GameClientPacket
{
return;
}
else if (player.isAlikeDead() || (player.getTarget() == null) || !player.getTarget().isPlayer())
if (player.isAlikeDead() || (player.getTarget() == null) || !player.getTarget().isPlayer())
{
sendPacket(ActionFailed.STATIC_PACKET);
return;

View File

@@ -16,8 +16,6 @@
*/
package com.l2jmobius.gameserver.network.clientpackets;
import java.util.Collection;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
@@ -45,8 +43,7 @@ public class RequestRecordInfo extends L2GameClientPacket
activeChar.sendPacket(new UserInfo(activeChar));
final Collection<L2Object> objs = activeChar.getKnownList().getKnownObjects().values();
for (L2Object object : objs)
for (L2Object object : activeChar.getKnownList().getKnownObjects().values())
{
if (object.getPoly().isMorphed() && object.getPoly().getPolyType().equals("item"))
{
@@ -57,18 +54,9 @@ public class RequestRecordInfo extends L2GameClientPacket
if (!object.isVisibleFor(activeChar))
{
object.sendInfo(activeChar);
if (object instanceof L2Character)
if ((object instanceof L2Character) && (((L2Character) object).getAI() != null))
{
// Update the state of the L2Character object client
// side by sending Server->Client packet
// MoveToPawn/CharMoveToLocation and AutoAttackStart to
// the L2PcInstance
final L2Character obj = (L2Character) object;
if (obj.getAI() != null)
{
obj.getAI().describeStateToPlayer(activeChar);
}
((L2Character) object).getAI().describeStateToPlayer(activeChar);
}
}
}

View File

@@ -77,14 +77,7 @@ public final class RequestRefundItem extends L2GameClientPacket
player.sendMessage("You are using refund too fast.");
return;
}
if (_items == null)
{
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (!player.hasRefund())
if ((_items == null) || !player.hasRefund())
{
sendPacket(ActionFailed.STATIC_PACKET);
return;
@@ -197,8 +190,7 @@ public final class RequestRefundItem extends L2GameClientPacket
for (int i = 0; i < _items.length; i++)
{
final L2ItemInstance item = player.getRefund().transferItem("Refund", objectIds[i], Long.MAX_VALUE, player.getInventory(), player, player.getLastFolkNPC());
if (item == null)
if (player.getRefund().transferItem("Refund", objectIds[i], Long.MAX_VALUE, player.getInventory(), player, player.getLastFolkNPC()) == null)
{
_log.warning("Error refunding object for char " + player.getName() + " (newitem == null)");
continue;

View File

@@ -107,24 +107,18 @@ public class RequestRegistBeauty extends L2GameClientPacket
return;
}
if (requiredAdena > 0)
if ((requiredAdena > 0) && !player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true))
{
if (!player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true))
{
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
return;
}
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
return;
}
if (requiredBeautyShopTicket > 0)
if ((requiredBeautyShopTicket > 0) && !player.reduceBeautyTickets(getClass().getSimpleName(), requiredBeautyShopTicket, null, true))
{
if (!player.reduceBeautyTickets(getClass().getSimpleName(), requiredBeautyShopTicket, null, true))
{
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
return;
}
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
return;
}
if (_hairId > 0)

View File

@@ -68,13 +68,7 @@ public final class RequestRestartPoint extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if (!activeChar.canRevive())
if ((activeChar == null) || !activeChar.canRevive())
{
return;
}
@@ -84,25 +78,22 @@ public final class RequestRestartPoint extends L2GameClientPacket
activeChar.stopFakeDeath(true);
return;
}
else if (!activeChar.isDead())
if (!activeChar.isDead())
{
_log.warning("Living player [" + activeChar.getName() + "] called RestartPointPacket! Ban this player!");
return;
}
final Castle castle = CastleManager.getInstance().getCastle(activeChar.getX(), activeChar.getY(), activeChar.getZ());
if ((castle != null) && castle.getSiege().isInProgress())
if ((castle != null) && castle.getSiege().isInProgress() && (activeChar.getClan() != null) && castle.getSiege().checkIsAttacker(activeChar.getClan()))
{
if ((activeChar.getClan() != null) && castle.getSiege().checkIsAttacker(activeChar.getClan()))
// Schedule respawn delay for attacker
ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), castle.getSiege().getAttackerRespawnDelay());
if (castle.getSiege().getAttackerRespawnDelay() > 0)
{
// Schedule respawn delay for attacker
ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), castle.getSiege().getAttackerRespawnDelay());
if (castle.getSiege().getAttackerRespawnDelay() > 0)
{
activeChar.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
}
return;
activeChar.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
}
return;
}
portPlayer(activeChar);

View File

@@ -40,14 +40,11 @@ public final class RequestSaveInventoryOrder extends L2GameClientPacket
@Override
protected void readImpl()
{
int sz = readD();
sz = Math.min(sz, LIMIT);
final int sz = Math.min(readD(), LIMIT);
_order = new ArrayList<>(sz);
for (int i = 0; i < sz; i++)
{
final int objectId = readD();
final int order = readD();
_order.add(new InventoryOrder(objectId, order));
_order.add(new InventoryOrder(readD(), readD()));
}
}
@@ -55,16 +52,18 @@ public final class RequestSaveInventoryOrder extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance player = getClient().getActiveChar();
if (player != null)
if (player == null)
{
final Inventory inventory = player.getInventory();
for (InventoryOrder order : _order)
return;
}
final Inventory inventory = player.getInventory();
for (InventoryOrder order : _order)
{
final L2ItemInstance item = inventory.getItemByObjectId(order.objectID);
if ((item != null) && (item.getItemLocation() == ItemLocation.INVENTORY))
{
final L2ItemInstance item = inventory.getItemByObjectId(order.objectID);
if ((item != null) && (item.getItemLocation() == ItemLocation.INVENTORY))
{
item.setItemLocation(ItemLocation.INVENTORY, order.order);
}
item.setItemLocation(ItemLocation.INVENTORY, order.order);
}
}
}

View File

@@ -64,12 +64,7 @@ public class RequestSaveKeyMapping extends L2GameClientPacket
final int cmdSize = readD();
for (int j = 0; j < cmdSize; j++)
{
final int cmd = readD();
final int key = readD();
final int tgKey1 = readD();
final int tgKey2 = readD();
final int show = readD();
UIData.addKey(_keyMap, i, new ActionKey(i, cmd, key, tgKey1, tgKey2, show));
UIData.addKey(_keyMap, i, new ActionKey(i, readD(), readD(), readD(), readD(), readD()));
}
}
readD();

View File

@@ -141,13 +141,10 @@ public final class RequestSellItem extends L2GameClientPacket
return;
}
if (merchant != null)
if ((merchant != null) && !buyList.isNpcAllowed(merchant.getId()))
{
if (!buyList.isNpcAllowed(merchant.getId()))
{
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
long totalPrice = 0;

View File

@@ -74,7 +74,7 @@ public final class RequestSendPost extends L2GameClientPacket
protected void readImpl()
{
_receiver = readS();
_isCod = readD() == 0 ? false : true;
_isCod = readD() != 0;
_subject = readS();
_text = readS();

View File

@@ -41,12 +41,7 @@ public final class RequestShortCutDel extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
return;
}
if ((_page > 10) || (_page < 0))
if ((activeChar == null) || (_page > 10) || (_page < 0))
{
return;
}

View File

@@ -89,21 +89,12 @@ public class RequestShowResetShopList extends L2GameClientPacket
requiredAdena += face.getResetAdena();
}
if ((player.getAdena() < requiredAdena))
if ((player.getAdena() < requiredAdena) || ((requiredAdena > 0) && !player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true)))
{
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.RESTORE, ExResponseBeautyRegistReset.FAILURE));
return;
}
if (requiredAdena > 0)
{
if (!player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true))
{
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.RESTORE, ExResponseBeautyRegistReset.FAILURE));
return;
}
}
player.getVariables().remove("visualHairId");
player.getVariables().remove("visualHairColorId");
player.getVariables().remove("visualFaceId");

View File

@@ -45,16 +45,14 @@ public final class RequestSiegeAttackerList extends L2GameClientPacket
final Castle castle = CastleManager.getInstance().getCastleById(_castleId);
if (castle != null)
{
final SiegeAttackerList sal = new SiegeAttackerList(castle);
sendPacket(sal);
sendPacket(new SiegeAttackerList(castle));
}
else
{
final SiegableHall hall = CHSiegeManager.getInstance().getSiegableHall(_castleId);
if (hall != null)
{
final SiegeAttackerList sal = new SiegeAttackerList(hall);
sendPacket(sal);
sendPacket(new SiegeAttackerList(hall));
}
}
}

View File

@@ -45,8 +45,7 @@ public final class RequestSiegeDefenderList extends L2GameClientPacket
{
return;
}
final SiegeDefenderList sdl = new SiegeDefenderList(castle);
sendPacket(sdl);
sendPacket(new SiegeDefenderList(castle));
}
@Override

View File

@@ -58,7 +58,7 @@ public final class RequestStartPledgeWar extends L2GameClientPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
{
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
player.sendPacket(ActionFailed.STATIC_PACKET);
@@ -72,19 +72,19 @@ public final class RequestStartPledgeWar extends L2GameClientPacket
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
else if ((_clan.getAllyId() == clan.getAllyId()) && (_clan.getAllyId() != 0))
if ((_clan.getAllyId() == clan.getAllyId()) && (_clan.getAllyId() != 0))
{
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE));
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
else if ((clan.getLevel() < 3) || (clan.getMembersCount() < Config.ALT_CLAN_MEMBERS_FOR_WAR))
if ((clan.getLevel() < 3) || (clan.getMembersCount() < Config.ALT_CLAN_MEMBERS_FOR_WAR))
{
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.A_CLAN_WAR_CAN_ONLY_BE_DECLARED_IF_THE_CLAN_IS_LEVEL_5_OR_ABOVE_AND_THE_NUMBER_OF_CLAN_MEMBERS_IS_FIFTEEN_OR_GREATER));
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
else if (_clan.isAtWarWith(clan.getId()))
if (_clan.isAtWarWith(clan.getId()))
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN);
sm.addString(clan.getName());

View File

@@ -46,40 +46,29 @@ public final class RequestWithDrawPremiumItem extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if ((activeChar == null) || (_itemCount <= 0))
{
return;
}
if (activeChar == null)
{
return;
}
else if (_itemCount <= 0)
{
return;
}
/*
* else if (activeChar.getObjectId() != _charId) { Util.handleIllegalPlayerAction(activeChar, "[RequestWithDrawPremiumItem] Incorrect owner, Player: " + activeChar.getName(), Config.DEFAULT_PUNISH); return; }
*/
else if (activeChar.getPremiumItemList().isEmpty())
if (activeChar.getPremiumItemList().isEmpty())
{
Util.handleIllegalPlayerAction(activeChar, "[RequestWithDrawPremiumItem] Player: " + activeChar.getName() + " try to get item with empty list!", Config.DEFAULT_PUNISH);
return;
}
else if ((activeChar.getWeightPenalty() >= 3) || !activeChar.isInventoryUnder90(false))
if ((activeChar.getWeightPenalty() >= 3) || !activeChar.isInventoryUnder90(false))
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_RECEIVE_THE_DIMENSIONAL_ITEM_BECAUSE_YOU_HAVE_EXCEED_YOUR_INVENTORY_WEIGHT_QUANTITY_LIMIT);
return;
}
else if (activeChar.isProcessingTransaction())
if (activeChar.isProcessingTransaction())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_RECEIVE_A_DIMENSIONAL_ITEM_DURING_AN_EXCHANGE);
return;
}
final L2PremiumItem _item = activeChar.getPremiumItemList().get(_itemNum);
if (_item == null)
{
return;
}
else if (_item.getCount() < _itemCount)
if ((_item == null) || (_item.getCount() < _itemCount))
{
return;
}

View File

@@ -49,27 +49,27 @@ public final class RequestWithDrawalParty extends L2GameClientPacket
}
final L2Party party = player.getParty();
if (party != null)
if (party == null)
{
party.removePartyMember(player, messageType.Left);
if (player.isInPartyMatchRoom())
{
final PartyMatchRoom _room = PartyMatchRoomList.getInstance().getPlayerRoom(player);
if (_room != null)
{
player.sendPacket(new PartyMatchDetail(player, _room));
player.sendPacket(new ExPartyRoomMember(player, _room, 0));
player.sendPacket(new ExClosePartyRoom());
_room.deleteMember(player);
}
player.setPartyRoom(0);
// player.setPartyMatching(0);
player.broadcastUserInfo();
}
return;
}
party.removePartyMember(player, messageType.Left);
if (!player.isInPartyMatchRoom())
{
return;
}
final PartyMatchRoom _room = PartyMatchRoomList.getInstance().getPlayerRoom(player);
if (_room != null)
{
player.sendPacket(new PartyMatchDetail(player, _room));
player.sendPacket(new ExPartyRoomMember(player, _room, 0));
player.sendPacket(new ExClosePartyRoom());
_room.deleteMember(player);
}
player.setPartyRoom(0);
player.broadcastUserInfo();
}
@Override

View File

@@ -39,12 +39,7 @@ public final class RequestWriteHeroWords extends L2GameClientPacket
protected void runImpl()
{
final L2PcInstance player = getClient().getActiveChar();
if ((player == null) || !player.isHero())
{
return;
}
if ((_heroWords == null) || (_heroWords.length() > 300))
if ((player == null) || !player.isHero() || (_heroWords == null) || (_heroWords.length() > 300))
{
return;
}

View File

@@ -164,13 +164,10 @@ public final class Say2 extends L2GameClientPacket
return;
}
if (activeChar.isJailed() && Config.JAIL_DISABLE_CHAT)
if (activeChar.isJailed() && Config.JAIL_DISABLE_CHAT && ((chatType == ChatType.WHISPER) || (chatType == ChatType.SHOUT) || (chatType == ChatType.TRADE) || (chatType == ChatType.HERO_VOICE)))
{
if ((chatType == ChatType.WHISPER) || (chatType == ChatType.SHOUT) || (chatType == ChatType.TRADE) || (chatType == ChatType.HERO_VOICE))
{
activeChar.sendMessage("You can not chat with players outside of the jail.");
return;
}
activeChar.sendMessage("You can not chat with players outside of the jail.");
return;
}
if ((chatType == ChatType.PETITION_PLAYER) && activeChar.isGM())
@@ -203,12 +200,9 @@ public final class Say2 extends L2GameClientPacket
_logChat.log(record);
}
if (_text.indexOf(8) >= 0)
if ((_text.indexOf(8) >= 0) && !parseAndPublishItem(activeChar))
{
if (!parseAndPublishItem(activeChar))
{
return;
}
return;
}
final ChatFilterReturn filter = EventDispatcher.getInstance().notifyEvent(new OnPlayerChat(activeChar, L2World.getInstance().getPlayer(_target), _text, chatType), ChatFilterReturn.class);

View File

@@ -282,11 +282,7 @@ public final class UseItem extends L2GameClientPacket
if (activeChar.isCastingNow() || activeChar.isCastingSimultaneouslyNow())
{
// Creating next action class.
final NextAction nextAction = new NextAction(CtrlEvent.EVT_FINISH_CASTING, CtrlIntention.AI_INTENTION_CAST, () -> activeChar.useEquippableItem(item, true));
// Binding next action to AI.
activeChar.getAI().setNextAction(nextAction);
activeChar.getAI().setNextAction(new NextAction(CtrlEvent.EVT_FINISH_CASTING, CtrlIntention.AI_INTENTION_CAST, () -> activeChar.useEquippableItem(item, true)));
}
else if (activeChar.isAttackingNow())
{
@@ -326,13 +322,10 @@ public final class UseItem extends L2GameClientPacket
// Item reuse time should be added if the item is successfully used.
// Skill reuse delay is done at handlers.itemhandlers.ItemSkillsTemplate;
if (handler.useItem(activeChar, item, _ctrlPressed))
if (handler.useItem(activeChar, item, _ctrlPressed) && (reuseDelay > 0))
{
if (reuseDelay > 0)
{
activeChar.addTimeStampItem(item, reuseDelay);
sendSharedGroupUpdate(activeChar, sharedReuseGroup, reuseDelay, reuseDelay);
}
activeChar.addTimeStampItem(item, reuseDelay);
sendSharedGroupUpdate(activeChar, sharedReuseGroup, reuseDelay, reuseDelay);
}
}
}

View File

@@ -66,12 +66,9 @@ public class ValidatePosition extends L2GameClientPacket
_log.fine("server pos: " + realX + " " + realY + " " + realZ + " head " + activeChar.getHeading());
}
if ((_x == 0) && (_y == 0))
if ((_x == 0) && (_y == 0) && (realX != 0))
{
if (realX != 0)
{
return;
}
return;
}
int dx, dy, dz;
@@ -92,26 +89,10 @@ public class ValidatePosition extends L2GameClientPacket
}
return;
}
if (activeChar.isInAirShip())
{
// Zoey76: TODO: Implement or cleanup.
// if (Config.COORD_SYNCHRONIZE == 2)
// {
// dx = _x - activeChar.getInVehiclePosition().getX();
// dy = _y - activeChar.getInVehiclePosition().getY();
// dz = _z - activeChar.getInVehiclePosition().getZ();
// diffSq = ((dx * dx) + (dy * dy));
// if (diffSq > 250000)
// {
// sendPacket(new GetOnVehicle(activeChar.getObjectId(), _data, activeChar.getInBoatPosition()));
// }
// }
return;
}
if (activeChar.isFalling(_z))
if (activeChar.isInAirShip() || activeChar.isFalling(_z))
{
return; // disable validations during fall to avoid "jumping"
return;
}
dx = _x - realX;

View File

@@ -58,12 +58,8 @@ public class RequestDivideAdena extends L2GameClientPacket
{
return;
}
else if (request.getDistributor() != player)
{
cancelDistribution(request);
return;
}
else if (request.getAdenaObjectId() != _adenaObjId)
if ((request.getDistributor() != player) || (request.getAdenaObjectId() != _adenaObjId))
{
cancelDistribution(request);
return;
@@ -86,7 +82,8 @@ public class RequestDivideAdena extends L2GameClientPacket
cancelDistribution(request);
return;
}
else if (!party.isLeader(player))
if (!party.isLeader(player))
{
player.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_A_PARTY_LEADER);
cancelDistribution(request);
@@ -108,13 +105,15 @@ public class RequestDivideAdena extends L2GameClientPacket
cancelDistribution(request);
return;
}
else if (targets.size() < request.getPlayers().size())
if (targets.size() < request.getPlayers().size())
{
player.sendPacket(SystemMessageId.THE_DISTRIBUTION_PARTICIPANTS_HAVE_CHANGED_ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED);
cancelDistribution(request);
return;
}
else if (player.getAdena() < _adenaCount)
if (player.getAdena() < _adenaCount)
{
player.sendPacket(SystemMessageId.DISTRIBUTION_CANNOT_PROCEED_AS_THERE_IS_INSUFFICIENT_ADENA_FOR_DISTRIBUTION);
cancelDistribution(request);

View File

@@ -48,8 +48,7 @@ public class RequestDivideAdenaCancel extends L2GameClientPacket
if (_cancel)
{
final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class);
request.getPlayers().stream().filter(Objects::nonNull).forEach(p ->
player.getRequest(AdenaDistributionRequest.class).getPlayers().stream().filter(Objects::nonNull).forEach(p ->
{
p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED);
p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET);

View File

@@ -61,7 +61,8 @@ public class RequestDivideAdenaStart extends L2GameClientPacket
player.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_AN_ALLIANCE_LEADER_OR_PARTY_LEADER);
return;
}
else if (!party.isLeader(player))
if (!party.isLeader(player))
{
player.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_A_PARTY_LEADER);
return;

View File

@@ -43,9 +43,7 @@ public class RequestAlchemyTryMixCube extends L2GameClientPacket
final int count = readD();
for (int i = 0; i < count; ++i)
{
final int itemObjectId = readD();
final long itemCount = readQ();
_items.put(itemObjectId, itemCount);
_items.put(readD(), readQ());
}
}
@@ -96,23 +94,7 @@ public class RequestAlchemyTryMixCube extends L2GameClientPacket
final L2ItemInstance item = activeChar.getInventory().getItemByObjectId(itemObjectId);
if (item != null)
{
if (item.getCount() < itemCount)
{
continue;
}
if (!item.isDestroyable())
{
continue;
}
if (item.getEnchantLevel() > 0)
{
continue;
}
if (item.isAugmented())
{
continue;
}
if (item.isShadowItem())
if ((item.getCount() < itemCount) || !item.isDestroyable() || (item.getEnchantLevel() > 0) || item.isAugmented() || item.isShadowItem())
{
continue;
}

View File

@@ -69,48 +69,20 @@ public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClie
final L2ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
final L2ItemInstance extracItem = inventory.getItemByObjectId(_extracItemObjId);
L2ItemInstance stone = request.getAppearanceStone();
if ((targetItem == null) || (extracItem == null) || (stone == null))
if ((targetItem == null) || (extracItem == null) || (stone == null) || !extracItem.isAppearanceable() || ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL)) || ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (!extracItem.isAppearanceable())
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
final AppearanceStone appearanceStone = AppearanceItemData.getInstance().getStone(stone.getId());
if (appearanceStone == null)
if ((appearanceStone == null) || (appearanceStone.getType() == AppearanceType.RESTORE) || (appearanceStone.getType() == AppearanceType.FIXED))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((appearanceStone.getType() == AppearanceType.RESTORE) || (appearanceStone.getType() == AppearanceType.FIXED))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (extracItem.getVisualId() > 0)
{
player.sendPacket(ExShapeShiftingResult.FAILED);
@@ -118,16 +90,12 @@ public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClie
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (appearanceStone.getWeaponType() != WeaponType.NONE)
if ((appearanceStone.getWeaponType() != WeaponType.NONE) && (!targetItem.isWeapon() || (targetItem.getItemType() != appearanceStone.getWeaponType())))
{
if (!targetItem.isWeapon() || (targetItem.getItemType() != appearanceStone.getWeaponType()))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
player.sendPacket(ExShapeShiftingResult.FAILED);
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (appearanceStone.getWeaponType() != WeaponType.NONE)
@@ -139,7 +107,6 @@ public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClie
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
switch (appearanceStone.getHandType())
{
case ONE_HANDED:

View File

@@ -66,57 +66,20 @@ public class RequestExTryToPutShapeShiftingTargetItem extends L2GameClientPacket
final PcInventory inventory = player.getInventory();
final L2ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
L2ItemInstance stone = request.getAppearanceStone();
if ((targetItem == null) || (stone == null))
if ((targetItem == null) || (stone == null) || !targetItem.isAppearanceable() || ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL)) || ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null))
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (!targetItem.isAppearanceable())
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL))
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
final AppearanceStone appearanceStone = AppearanceItemData.getInstance().getStone(stone.getId());
if (appearanceStone == null)
if ((appearanceStone == null) || ((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)))
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)))
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
// TODO: Handle hair accessory!
// if (!targetItem.isEtcItem() && (targetItem.getItem().getCrystalType() == CrystalType.NONE))
{
// player.sendPacket(SystemMessageId.YOU_CANNOT_MODIFY_OR_RESTORE_NOGRADE_ITEMS);
// return;
}
if (!appearanceStone.getCrystalTypes().isEmpty() && !appearanceStone.getCrystalTypes().contains(targetItem.getItem().getCrystalType()))
{
player.sendPacket(SystemMessageId.ITEM_GRADES_DO_NOT_MATCH);
@@ -131,30 +94,12 @@ public class RequestExTryToPutShapeShiftingTargetItem extends L2GameClientPacket
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (!appearanceStone.getTargetTypes().contains(AppearanceTargetType.ALL))
if (!appearanceStone.getTargetTypes().contains(AppearanceTargetType.ALL) && ((targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON)) || (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY)) || (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))))
{
if (targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON))
{
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
else if (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY))
{
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
else if (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))
{
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (appearanceStone.getWeaponType() != WeaponType.NONE)

View File

@@ -72,36 +72,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
final PcInventory inventory = player.getInventory();
final L2ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
L2ItemInstance stone = request.getAppearanceStone();
if ((targetItem == null) || (stone == null))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (stone.getOwnerId() != player.getObjectId())
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (!targetItem.isAppearanceable())
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
if ((targetItem == null) || (stone == null) || (stone.getOwnerId() != player.getObjectId()) || !targetItem.isAppearanceable() || ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL)) || ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
@@ -109,36 +80,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
}
final AppearanceStone appearanceStone = AppearanceItemData.getInstance().getStone(stone.getId());
if (appearanceStone == null)
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
// TODO: Handle hair accessory!
// if (!targetItem.isEtcItem() && (targetItem.getItem().getCrystalType() == CrystalType.NONE))
{
// player.sendPacket(ExShapeShiftingResult.FAILED);
// player.removeRequest(ShapeShiftingItemRequest.class);
// return;
}
if (!appearanceStone.getCrystalTypes().isEmpty() && !appearanceStone.getCrystalTypes().contains(targetItem.getItem().getCrystalType()))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (appearanceStone.getTargetTypes().isEmpty())
if ((appearanceStone == null) || ((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)) || (!appearanceStone.getCrystalTypes().isEmpty() && !appearanceStone.getCrystalTypes().contains(targetItem.getItem().getCrystalType())) || appearanceStone.getTargetTypes().isEmpty())
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
@@ -147,19 +89,13 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
if (!appearanceStone.getTargetTypes().contains(AppearanceTargetType.ALL))
{
if (targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON))
if ((targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON)) || (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY)))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
else if (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
else if (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))
if (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))
{
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
@@ -255,42 +191,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
int extracItemId = 0;
if ((appearanceStone.getType() != AppearanceType.RESTORE) && (appearanceStone.getType() != AppearanceType.FIXED))
{
if (extracItem == null)
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (!extracItem.isAppearanceable())
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (!extracItem.isEtcItem() && (targetItem.getItem().getCrystalType().ordinal() <= extracItem.getItem().getCrystalType().ordinal()))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (extracItem.getVisualId() > 0)
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (extracItem.getOwnerId() != player.getObjectId())
if ((extracItem == null) || !extracItem.isAppearanceable() || ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL)) || (!extracItem.isEtcItem() && (targetItem.getItem().getCrystalType().ordinal() <= extracItem.getItem().getCrystalType().ordinal())) || (extracItem.getVisualId() > 0) || (extracItem.getOwnerId() != player.getObjectId()))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
@@ -314,22 +215,12 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (stone.getCount() < 1L)
if ((stone.getCount() < 1L) || ((appearanceStone.getType() == AppearanceType.NORMAL) && (inventory.destroyItem(getClass().getSimpleName(), extracItem, 1, player, this) == null)))
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
if (appearanceStone.getType() == AppearanceType.NORMAL)
{
if (inventory.destroyItem(getClass().getSimpleName(), extracItem, 1, player, this) == null)
{
player.sendPacket(ExShapeShiftingResult.FAILED);
player.removeRequest(ShapeShiftingItemRequest.class);
return;
}
}
inventory.destroyItem(getClass().getSimpleName(), stone, 1, player, this);
player.reduceAdena(getClass().getSimpleName(), cost, extracItem, true);
@@ -367,15 +258,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
}
targetItem.getVariables().storeMe();
if (appearanceStone.getCost() > 0)
{
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_SPENT_S1_ON_A_SUCCESSFUL_APPEARANCE_MODIFICATION).addLong(cost));
}
else
{
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_S_APPEARANCE_MODIFICATION_HAS_FINISHED).addItemName(targetItem.getDisplayId()));
}
player.sendPacket(appearanceStone.getCost() > 0 ? SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_SPENT_S1_ON_A_SUCCESSFUL_APPEARANCE_MODIFICATION).addLong(cost) : SystemMessage.getSystemMessage(SystemMessageId.S1_S_APPEARANCE_MODIFICATION_HAS_FINISHED).addItemName(targetItem.getDisplayId()));
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(targetItem);
@@ -404,19 +287,20 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
player.removeRequest(ShapeShiftingItemRequest.class);
player.sendPacket(new ExShapeShiftingResult(ExShapeShiftingResult.RESULT_SUCCESS, targetItem.getId(), extracItemId));
if (targetItem.isEquipped())
if (!targetItem.isEquipped())
{
player.broadcastUserInfo();
final ExUserInfoEquipSlot slots = new ExUserInfoEquipSlot(player, false);
for (InventorySlot slot : InventorySlot.values())
{
if (slot.getSlot() == targetItem.getLocationSlot())
{
slots.addComponentType(slot);
}
}
player.sendPacket(slots);
return;
}
player.broadcastUserInfo();
final ExUserInfoEquipSlot slots = new ExUserInfoEquipSlot(player, false);
for (InventorySlot slot : InventorySlot.values())
{
if (slot.getSlot() == targetItem.getLocationSlot())
{
slots.addComponentType(slot);
}
}
player.sendPacket(slots);
}
@Override

View File

@@ -45,13 +45,13 @@ public class RequestNewEnchantPushOne extends L2GameClientPacket
{
return;
}
else if (activeChar.isInStoreMode())
if (activeChar.isInStoreMode())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
return;
}
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);

View File

@@ -46,13 +46,13 @@ public class RequestNewEnchantPushTwo extends L2GameClientPacket
{
return;
}
else if (activeChar.isInStoreMode())
if (activeChar.isInStoreMode())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
return;
}
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
@@ -66,32 +66,10 @@ public class RequestNewEnchantPushTwo extends L2GameClientPacket
return;
}
// Make sure player owns this item.
request.setItemTwo(_objectId);
final L2ItemInstance itemOne = request.getItemOne();
final L2ItemInstance itemTwo = request.getItemTwo();
if ((itemOne == null) || (itemTwo == null))
{
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
return;
}
// Lets prevent using same item twice
if (itemOne.getObjectId() == itemTwo.getObjectId())
{
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
return;
}
// Combining only same items!
if (itemOne.getItem().getId() != itemTwo.getItem().getId())
{
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
return;
}
// Not implemented or not able to merge!
if ((itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
if ((itemOne == null) || (itemTwo == null) || (itemOne.getObjectId() == itemTwo.getObjectId()) || (itemOne.getItem().getId() != itemTwo.getItem().getId()) || (itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
{
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
return;

View File

@@ -46,13 +46,13 @@ public class RequestNewEnchantRemoveOne extends L2GameClientPacket
{
return;
}
else if (activeChar.isInStoreMode())
if (activeChar.isInStoreMode())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
return;
}
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);

View File

@@ -46,13 +46,13 @@ public class RequestNewEnchantRemoveTwo extends L2GameClientPacket
{
return;
}
else if (activeChar.isInStoreMode())
if (activeChar.isInStoreMode())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
return;
}
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);

View File

@@ -47,13 +47,13 @@ public class RequestNewEnchantTry extends L2GameClientPacket
{
return;
}
else if (activeChar.isInStoreMode())
if (activeChar.isInStoreMode())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
return;
}
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
{
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
@@ -77,31 +77,12 @@ public class RequestNewEnchantTry extends L2GameClientPacket
activeChar.removeRequest(request.getClass());
return;
}
// Lets prevent using same item twice
if (itemOne.getObjectId() == itemTwo.getObjectId())
if ((itemOne.getObjectId() == itemTwo.getObjectId()) || (itemOne.getItem().getId() != itemTwo.getItem().getId()) || (itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
{
activeChar.sendPacket(new ExEnchantFail(itemOne.getItem().getId(), itemTwo.getItem().getId()));
activeChar.removeRequest(request.getClass());
return;
}
// Combining only same items!
if (itemOne.getItem().getId() != itemTwo.getItem().getId())
{
activeChar.sendPacket(new ExEnchantFail(itemOne.getItem().getId(), itemTwo.getItem().getId()));
activeChar.removeRequest(request.getClass());
return;
}
// Not implemented or not able to merge!
if ((itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
{
activeChar.sendPacket(new ExEnchantFail(itemOne.getItem().getId(), itemTwo.getItem().getId()));
activeChar.removeRequest(request.getClass());
return;
}
final InventoryUpdate iu = new InventoryUpdate();
final double random = Rnd.nextDouble() * 100;
@@ -110,11 +91,9 @@ public class RequestNewEnchantTry extends L2GameClientPacket
{
iu.addRemovedItem(itemOne);
iu.addRemovedItem(itemTwo);
if (activeChar.destroyItem("Compound-Item-One", itemOne, null, true) && activeChar.destroyItem("Compound-Item-Two", itemTwo, null, true))
{
final L2ItemInstance item = activeChar.addItem("Compound-Result", itemOne.getItem().getCompoundItem(), 1, null, true);
activeChar.sendPacket(new ExEnchantSucess(item.getItem().getId()));
activeChar.sendPacket(new ExEnchantSucess(activeChar.addItem("Compound-Result", itemOne.getItem().getCompoundItem(), 1, null, true).getItem().getId()));
}
}
else

View File

@@ -85,13 +85,7 @@ public class RequestCrystallizeEstimate extends L2GameClientPacket
}
final L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
if ((item == null) || item.isShadowItem() || item.isTimeLimitedItem())
{
sendActionFailed();
return;
}
if (item.isHeroItem())
if ((item == null) || item.isShadowItem() || item.isTimeLimitedItem() || item.isHeroItem())
{
sendActionFailed();
return;

Some files were not shown because too many files have changed in this diff Show More