public AuthCheckIn(ChatServerPacket packet) { BinaryReader br = new BinaryReader(new MemoryStream(packet.Data)); Result = br.ReadUInt32(); Message = br.ReadString(); }
/// <summary>Handles the AuthInfo packet. Responds with AuthCheck packet</summary> /// <param name="packet">The packet.</param> private void OnAuthInfo(ChatServerPacket packet) { AuthInfoIn fromServer = new AuthInfoIn(packet); //LogServer(fromServer.ToString()); AuthCheckOut toServer = new AuthCheckOut(settings.Owner); serverToken = fromServer.ServerToken; clientToken = toServer.ClientToken; SendPacket(toServer); }
public AuthInfoIn(ChatServerPacket packet) { BinaryReader br = new BinaryReader(new MemoryStream(packet.Data)); LogonType = br.ReadUInt32(); ServerToken = br.ReadUInt32(); UDPValue = br.ReadUInt32(); FileTimeA = br.ReadUInt32(); FileTimeB = br.ReadUInt32(); FileName = Util.ReadSpecialString(br); ValueString = Util.ReadSpecialString(br); }
public LogonResponse2In(ChatServerPacket packet) { BinaryReader br = new BinaryReader(new MemoryStream(packet.Data)); Result = br.ReadUInt32(); if (packet.Data.Length > 4) { Message = br.ReadString(); } else { Message = ""; } }
/// <summary>Handles the LogonRealmEx packet. Signals manager to start up Realm Server handler</summary> /// <param name="packet">The packet.</param> private void OnLogonRealmEx(ChatServerPacket packet) { LogonRealmExIn fromServer = new LogonRealmExIn(packet); LogServer(fromServer.ToString()); if (!fromServer.IsSuccessful()) { Fail(FailureArgs.FailureTypes.RealmLoginFailed, fromServer.ToString()); return; } FireReadyToConnectToRealmServerEvent(new RealmServerArgs(fromServer)); }
/// <summary>Handles the LogonResponse2 packet. Responds by sending a QueryRealms2 Packet </summary> /// <param name="packet">The packet.</param> private void OnLogonResponse2(ChatServerPacket packet) { LogonResponse2In fromServer = new LogonResponse2In(packet); LogServer(fromServer.ToString()); if (!fromServer.IsSuccessful()) { Fail(FailureArgs.FailureTypes.LoginFailed, fromServer.ToString()); return; } SendPacket(ChatServerPacketType.QUERYREALMS2, new byte[0]); }
public QueryRealms2In(ChatServerPacket packet) { BinaryReader br = new BinaryReader(new MemoryStream(packet.Data)); Unknown = br.ReadUInt32(); Count = br.ReadUInt32(); Realms = new RealmInfo[Count]; for (int i = 0; i < Count; i++) { Realms[i].Unknown = br.ReadUInt32(); Realms[i].Title = Util.ReadSpecialString(br); Realms[i].Description = Util.ReadSpecialString(br); } }
/// <summary>Handles the QueryRealms2 packet. Responds by sending LogonRealmEx packet.</summary> /// <param name="packet">The packet.</param> private void OnQueryRealms2(ChatServerPacket packet) { QueryRealms2In fromServer = new QueryRealms2In(packet); LogServer(fromServer.ToString()); if (fromServer.Count == 0) { Fail(FailureArgs.FailureTypes.NoRealmsAvailable, "No realms available"); return; } LogonRealmExOut toServer = new LogonRealmExOut(clientToken, serverToken, fromServer.Realms[0].Title); SendPacket(toServer); }
/// <summary>Handles the AuthCheck packet. Responds with LogonRequest2 packet</summary> /// <param name="packet">The packet.</param> private void OnAuthCheck(ChatServerPacket packet) { AuthCheckIn fromServer = new AuthCheckIn(packet); LogServer(fromServer.ToString()); if (!fromServer.IsSuccessful()) { Fail(FailureArgs.FailureTypes.FailedAuthCheck, fromServer.ToString()); return; } LogonRequest2Out toServer = new LogonRequest2Out(settings.Username, settings.Password, clientToken, serverToken); SendPacket(toServer); }
public LogonRealmExIn(ChatServerPacket packet) { BinaryReader br = new BinaryReader(new MemoryStream(packet.Data)); MCPCookie = br.ReadUInt32(); MCPStatus = br.ReadUInt32(); if (packet.Data.Length > 8) { MCPChunk1 = br.ReadBytes(2 * 4); Ip = new IPAddress(br.ReadBytes(4)); Port = IPAddress.NetworkToHostOrder((short)br.ReadUInt32()); MCPChunk2 = br.ReadBytes(12 * 4); UniqueName = Util.ReadSpecialString(br); } else { MCPChunk1 = null; Ip = null; Port = 0; MCPChunk2 = null; UniqueName = ""; } }
/// <summary>Handles the Ping packet. Responds with the same packet</summary> /// <param name="packet">The packet.</param> private void OnPing(ChatServerPacket packet) { SendPacket(ChatServerPacketType.PING, packet.Data); }