using Filter; using Filter.Database.Account; using Filter.Networking.Instances; using Filter.Networking.Manager; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; namespace Filter.Handlers.Manager { internal class Manager3Handle { public Manager3Handle() { } [ManagerPacketHandler(Manager3TypeClient.BackToCharSelect)] public static void HandleBackToCharSelect(ManagerClient ClientSocket, Packet ClientPacket) { if (ClientSocket.IsConnected != 0) { return; } if (ClientSocket.Account == null) { ClientSocket.Disconnect(); return; } ClientSocket.SendDisconnectMessages(); ClientSocket.Server.SendPacket(ClientPacket); } [ManagerPacketHandler(Manager3TypeServer.Transfer)] public static void HandleTransfer(ManagerClient ClientSocket, Packet ClientPacket) { string str; if (ClientSocket.IsConnected != 0) { return; } if (!ClientPacket.ReadBytes(new byte[18], 18)) { ClientSocket.Disconnect(); return; } if (!ClientPacket.ReadString(out str, 64)) { ClientSocket.Disconnect(); return; } if (!Program.LoginToManagerTransfer.ContainsKey(str)) { ClientSocket.Disconnect(); return; } ClientSocket.AccountID = Program.LoginToManagerTransfer[str]; Program.LoginToManagerTransfer.Remove(str); ManagerClient clientSocket = ClientSocket; tAccount _tAccount = ( from nEMID in Program.AccountData.tAccounts where nEMID.nEMID == ClientSocket.AccountID select nEMID).FirstOrDefault(); tAccount _tAccount1 = _tAccount; clientSocket.Account = _tAccount; if (_tAccount1 == null) { ClientSocket.Disconnect(); return; } ClientSocket.Server.SendPacket(ClientPacket); } } }