From 9cc77abbc0650c113177db1de8b6222b24f0e3ab Mon Sep 17 00:00:00 2001 From: Rumen Nikiforov <unafraid89@gmail.com> Date: Wed, 9 May 2012 01:50:32 +0000 Subject: [PATCH] BETA: More for [8816] * Validating target not gm it's self * Cleanup --- .../admincommandhandlers/AdminPolymorph.java | 67 ++++++++++--------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPolymorph.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPolymorph.java index ab9839c363..a31738cb4c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPolymorph.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPolymorph.java @@ -24,6 +24,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse; import com.l2jserver.gameserver.network.serverpackets.SetupGauge; +import com.l2jserver.gameserver.util.Util; /** * This class handles following admin commands: polymorph @@ -46,14 +47,8 @@ public class AdminPolymorph implements IAdminCommandHandler @Override public boolean useAdminCommand(String command, L2PcInstance activeChar) { - if (activeChar.isSitting()) - { - activeChar.sendPacket(SystemMessageId.CANNOT_TRANSFORM_WHILE_SITTING); - return false; - } - if (command.startsWith("admin_untransform")) - { + { L2Object obj = activeChar.getTarget(); if (obj instanceof L2Character) { @@ -66,41 +61,47 @@ public class AdminPolymorph implements IAdminCommandHandler } else if (command.startsWith("admin_transform")) { - if (activeChar.isTransformed() || activeChar.isInStance()) - { - activeChar.sendPacket(SystemMessageId.YOU_ALREADY_POLYMORPHED_AND_CANNOT_POLYMORPH_AGAIN); - return false; - } - - else if (activeChar.isInWater()) - { - activeChar.sendPacket(SystemMessageId.YOU_CANNOT_POLYMORPH_INTO_THE_DESIRED_FORM_IN_WATER); - return false; - } - - else if (activeChar.isFlyingMounted() || activeChar.isMounted() || activeChar.isRidingStrider()) - { - activeChar.sendPacket(SystemMessageId.YOU_CANNOT_POLYMORPH_WHILE_RIDING_A_PET); - return false; - } - L2Object obj = activeChar.getTarget(); - if (obj instanceof L2PcInstance) + if (obj != null && obj.isPlayer()) { - L2PcInstance cha = (L2PcInstance) obj; + L2PcInstance cha = obj.getActingPlayer(); + + if (activeChar.isSitting()) + { + activeChar.sendPacket(SystemMessageId.CANNOT_TRANSFORM_WHILE_SITTING); + return false; + } + + else if (cha.isTransformed() || cha.isInStance()) + { + activeChar.sendPacket(SystemMessageId.YOU_ALREADY_POLYMORPHED_AND_CANNOT_POLYMORPH_AGAIN); + return false; + } + + else if (cha.isInWater()) + { + activeChar.sendPacket(SystemMessageId.YOU_CANNOT_POLYMORPH_INTO_THE_DESIRED_FORM_IN_WATER); + return false; + } + + else if (cha.isFlyingMounted() || cha.isMounted() || cha.isRidingStrider()) + { + activeChar.sendPacket(SystemMessageId.YOU_CANNOT_POLYMORPH_WHILE_RIDING_A_PET); + return false; + } String[] parts = command.split(" "); - if (parts.length >= 2) + if (parts.length > 1) { - try + int id = Integer.parseInt(parts[1]); + if (Util.isDigit(parts[1])) { - int id = Integer.parseInt(parts[1]); if (!TransformationManager.getInstance().transformPlayer(id, cha)) { cha.sendMessage("Unknow transformation id: " + id); } } - catch (NumberFormatException e) + else { activeChar.sendMessage("Usage: //transform <id>"); } @@ -210,6 +211,10 @@ public class AdminPolymorph implements IAdminCommandHandler } } + /** + * @param activeChar + * @param command + */ private void showMainPage(L2PcInstance activeChar, String command) { if (command.contains("transform")) -- GitLab