forked from MagicBane/Server
				
			
				 8 changed files with 105 additions and 64 deletions
			
			
		@ -0,0 +1,90 @@
				@@ -0,0 +1,90 @@
					 | 
				
			||||
// • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ .
 | 
				
			||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
 | 
				
			||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
 | 
				
			||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
 | 
				
			||||
// ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀
 | 
				
			||||
//      Magicbane Emulator Project © 2013 - 2022
 | 
				
			||||
//                www.magicbane.com
 | 
				
			||||
 | 
				
			||||
package engine.net.client.handlers; | 
				
			||||
 | 
				
			||||
import engine.exception.MsgSendException; | 
				
			||||
import engine.gameManager.ChatManager; | 
				
			||||
import engine.gameManager.ConfigManager; | 
				
			||||
import engine.gameManager.SessionManager; | 
				
			||||
import engine.net.client.ClientConnection; | 
				
			||||
import engine.net.client.msg.ClientNetMsg; | 
				
			||||
import engine.net.client.msg.PerformActionMsg; | 
				
			||||
import engine.net.client.msg.SendSummonsMsg; | 
				
			||||
import engine.objects.PlayerCharacter; | 
				
			||||
import engine.server.MBServerStatics; | 
				
			||||
 | 
				
			||||
import static engine.gameManager.PowersManager.*; | 
				
			||||
 | 
				
			||||
public class SendSummonsMsgHandler extends AbstractClientMsgHandler { | 
				
			||||
 | 
				
			||||
    public SendSummonsMsgHandler() { | 
				
			||||
        super(SendSummonsMsg.class); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    @Override | 
				
			||||
    protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException { | 
				
			||||
 | 
				
			||||
        PlayerCharacter playerCharacter = origin.getPlayerCharacter(); | 
				
			||||
 | 
				
			||||
        // Member variable declaration
 | 
				
			||||
 | 
				
			||||
        SendSummonsMsg msg; | 
				
			||||
 | 
				
			||||
        // Member variable assignment
 | 
				
			||||
 | 
				
			||||
        msg = (SendSummonsMsg) baseMsg; | 
				
			||||
 | 
				
			||||
        if (playerCharacter == null) | 
				
			||||
            return true; | 
				
			||||
 | 
				
			||||
        PlayerCharacter target = SessionManager | 
				
			||||
                .getPlayerCharacterByLowerCaseName(msg.getTargetName()); | 
				
			||||
 | 
				
			||||
        if (target == null || target.equals(playerCharacter) || target.isCombat()) { | 
				
			||||
 | 
				
			||||
            if (target == null) // Player not found. Send not found message
 | 
				
			||||
                ChatManager.chatInfoError(playerCharacter, | 
				
			||||
                        "Cannot find that player to summon."); | 
				
			||||
            else if (target.isCombat()) | 
				
			||||
                ChatManager.chatInfoError(playerCharacter, | 
				
			||||
                        "Cannot summon player in combat."); | 
				
			||||
 | 
				
			||||
            // else trying to summon self, just fail
 | 
				
			||||
 | 
				
			||||
            // recycle summon
 | 
				
			||||
            sendRecyclePower(msg.getPowerToken(), origin); | 
				
			||||
 | 
				
			||||
            // TODO: client already subtracted 200 mana.. need to correct it
 | 
				
			||||
            // end cast
 | 
				
			||||
            PerformActionMsg pam = new PerformActionMsg(msg.getPowerToken(), | 
				
			||||
                    msg.getTrains(), msg.getSourceType(), msg.getSourceID(), 0, | 
				
			||||
                    0, 0f, 0f, 0f, 1, 0); | 
				
			||||
            sendPowerMsg(playerCharacter, 2, pam); | 
				
			||||
 | 
				
			||||
            return true; | 
				
			||||
        } | 
				
			||||
        if (ConfigManager.MB_RULESET.getValue() == "LORE") { | 
				
			||||
            if (playerCharacter.guild.getGuildType().equals(target.guild.getGuildType()) == false) { | 
				
			||||
                ChatManager.chatInfoError(playerCharacter, | 
				
			||||
                        "Cannot summon player outside your charter."); | 
				
			||||
                return true; | 
				
			||||
            } | 
				
			||||
        } | 
				
			||||
        PerformActionMsg pam = new PerformActionMsg(msg.getPowerToken(), msg | 
				
			||||
                .getTrains(), msg.getSourceType(), msg.getSourceID(), target | 
				
			||||
                .getObjectType().ordinal(), target.getObjectUUID(), 0f, 0f, 0f, 1, 0); | 
				
			||||
 | 
				
			||||
        // Client removes 200 mana on summon use.. so don't send message to self
 | 
				
			||||
        target.addSummoner(playerCharacter.getObjectUUID(), System.currentTimeMillis() + MBServerStatics.FOURTYFIVE_SECONDS); | 
				
			||||
        usePower(pam, origin, false); | 
				
			||||
 | 
				
			||||
        return true; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue