public static void OnAuthSession(RealmServerSession session, CmsgAuthSession handler) { // Check the version of client trying to connect [5875] // DONE: Check Account session.Users = MainForm.Database.GetAccount(handler.ClientAccount); // Kick if existing // Check if account is banned // DONE: Set Crypt Hash Player session.PacketCrypto = new VanillaCrypt(); session.PacketCrypto.Init(session.Users.sessionkey); // Disconnect clients trying to enter with an invalid build //if (handler.Build < 5875 || handler.Build > 6141) // Disconnect clients trying to enter with an invalid build // If server full then queue, If GM/Admin let in // DONE: Addons info reading #region NOT USED var addonData = handler.ReadBytes((int)handler.BaseStream.Length - (int)handler.BaseStream.Position); var decompressed = ZLib.Decompress(addonData); //RealmServerSession.DumpPacket(decompressed); List <string> addOnsNames = new List <string>(); using (var reader = new PacketReader(new MemoryStream(decompressed))) { var count = reader.BaseStream.Length / sizeof(int); for (var i = 0; i < count; ++i) { //var addonName = reader.ReadString(); //if (addonName.Equals("")) continue; //addOnsNames.Add(addonName); } } #endregion // Update [IP / Build] // Create Log // Init Warden // DONE: Send Addon Packet session.SendPacket(new SmsgAddonInfo(addOnsNames)); // DONE: Send packet session.SendPacket(new SmsgAuthResponse()); }
public static void OnPingPacket(RealmServerSession session, CmsgPing handler) { session.SendPacket(new SmsgPong(handler.Ping)); // Set latency to char // if (session.Character != null) // session.Character.Latency = handler.Latency; }