Package l2p.loginserver.gameservercon

Source Code of l2p.loginserver.gameservercon.PacketHandler

package l2p.loginserver.gameservercon;

import java.io.IOException;
import java.util.logging.Logger;

import l2p.loginserver.gameservercon.gspackets.AuthRequest;
import l2p.loginserver.gameservercon.gspackets.BanIP;
import l2p.loginserver.gameservercon.gspackets.BlowFishKey;
import l2p.loginserver.gameservercon.gspackets.ChangeAccessLevel;
import l2p.loginserver.gameservercon.gspackets.ChangePassword;
import l2p.loginserver.gameservercon.gspackets.ClientBasePacket;
import l2p.loginserver.gameservercon.gspackets.LockAccountIP;
import l2p.loginserver.gameservercon.gspackets.MoveCharToAcc;
import l2p.loginserver.gameservercon.gspackets.PlayerAuthRequest;
import l2p.loginserver.gameservercon.gspackets.PlayerInGame;
import l2p.loginserver.gameservercon.gspackets.PlayerLogout;
import l2p.loginserver.gameservercon.gspackets.PlayersInGame;
import l2p.loginserver.gameservercon.gspackets.Restart;
import l2p.loginserver.gameservercon.gspackets.ServerStatus;
import l2p.loginserver.gameservercon.gspackets.TestConnectionResponse;
import l2p.loginserver.gameservercon.gspackets.UnbanIP;

/**
* @Author: Death
* @Date: 12/11/2007
* @Time: 19:05:16
*/
public class PacketHandler
{
  private static Logger log = Logger.getLogger(PacketHandler.class.getName());

  public static ClientBasePacket handlePacket(byte[] data, AttGS gameserver)
  {
    ClientBasePacket packet = null;
    try
    {
      data = gameserver.decrypt(data);
      int packetType = data[0] & 0xff;
      if(!gameserver.isCryptInitialized() && packetType > 0)
      {
        log.severe("Packet id[" + packetType + "] from not crypt initialized server.");
        return null;
      }
      if(!gameserver.isAuthed() && packetType > 1)
      {
        log.severe("Packet id[" + packetType + "] from not authed server.");
        return null;
      }
      switch(packetType)
      {
        case 0x00:
          new BlowFishKey(data, gameserver).run();
          break;
        case 0x01:
          new AuthRequest(data, gameserver).run();
          break;
        case 0x02:
          packet = new PlayerInGame(data, gameserver);
          break;
        case 0x03:
          packet = new PlayerLogout(data, gameserver);
          break;
        case 0x04:
          packet = new ChangeAccessLevel(data, gameserver);
          break;
        case 0x05:
          packet = new PlayerAuthRequest(data, gameserver);
          break;
        case 0x06:
          packet = new ServerStatus(data, gameserver);
          break;
        case 0x07:
          packet = new BanIP(data, gameserver);
          break;
        case 0x08:
          packet = new ChangePassword(data, gameserver);
          break;
        case 0x09:
          packet = new Restart(data, gameserver);
          break;
        case 0x0a:
          packet = new UnbanIP(data, gameserver);
          break;
        case 0x0b:
          packet = new LockAccountIP(data, gameserver);
          break;
        case 0x0c:
          packet = new MoveCharToAcc(data, gameserver);
          break;
        case 0x0d:
          packet = new TestConnectionResponse(data, gameserver);
          break;
        case 0x0e:
          packet = new PlayersInGame(data, gameserver);
          break;
        default:
          log.severe("Unknown packet from GS: " + packetType);
      }
    }
    catch(IOException e)
    {
      e.printStackTrace();
    }
    return packet;
  }
}
TOP

Related Classes of l2p.loginserver.gameservercon.PacketHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.