/// <summary> /// Called whenever a packet is received from a game client /// </summary> /// <param name="client"></param> /// <param name="stream"></param> public void PacketReceived(AuthServer server, PacketStream packet) { byte[] data = packet.ToArray(); ConsoleUtils.HexDump(data, "Received from AuthServer"); // Is it a known packet ID if (!PacketsDb.ContainsKey(packet.GetId())) { ConsoleUtils.ShowWarning("Unknown packet Id: {0}", packet.GetId()); return; } // Calls this packet parsing function Task.Factory.StartNew(() => { PacketsDb[packet.GetId()].Invoke(server, data); }); }
private void AG_UserJoin(AuthServer server, byte[] data) { AG.UserJoin userJoin = (AG.UserJoin)PacketManager.ToStructure(data, data.Length, typeof(AG.UserJoin)); Server.Instance.PendingUser(userJoin.UserId, userJoin.Key, userJoin.Permission, userJoin.AccountId); }
/// <summary> /// Triggered when it connects to Auth /// </summary> /// <param name="ar"></param> private void ConnectCallback(IAsyncResult ar) { Socket socket = (Socket)ar.AsyncState; if (!socket.Connected) { ConsoleUtils.ShowWarning("Could not connect to Auth-Server. Check your settings and try again..."); return; } socket.EndConnect(ar); // Initializes a new instance of Auth Auth = new AuthServer(socket); AuthPackets.Instance.Register(); // Starts to receive data socket.BeginReceive(Auth.NetData.Buffer, 0, Globals.MaxBuffer, SocketFlags.None, new AsyncCallback(ReadCallback), null); }
private void AG_Result(AuthServer server, byte[] data) { AG.RegisterResult registerResult = (AG.RegisterResult)PacketManager.ToStructure(data, data.Length, typeof(AG.RegisterResult)); Server.Instance.RegisterResult(registerResult.Result); }
/// <summary> /// Called when an entire packet is received /// </summary> /// <param name="gs"></param> /// <param name="packetStream"></param> private void PacketReceived(AuthServer server, PacketStream packetStream) { AuthPackets.Instance.PacketReceived(server, packetStream); }