public void OnClientMessageReceived(object sender, MessageReceivedEventArgs e) { if (e.GetMessage().Tag == (ushort)Pkt.PKT_CLIENT_REQUESTCHARACTERCLASSDATA) { PKT_SERVER_SENDCHARACTERCLASSDATA _SendClassData = new PKT_SERVER_SENDCHARACTERCLASSDATA(Database._ClassDatabase._ClassDatabase); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_SENDCHARACTERCLASSDATA, _SendClassData), SendMode.Reliable); } if (e.GetMessage().Tag == (ushort)Pkt.PKT_CLIENT_SENDCHARACTERCREATEDATA) { PKT_CLIENT_SENDCHARACTERCREATEDATA _CharacterCreateData = e.GetMessage().Deserialize <PKT_CLIENT_SENDCHARACTERCREATEDATA>(); AccountManager.ActiveAccounts[e.Client].Class.ID = Database._ClassDatabase.GetClassByID(_CharacterCreateData.ClassID).ID; AccountManager.ActiveAccounts[e.Client].Class.Name = Database._ClassDatabase.GetClassByID(_CharacterCreateData.ClassID).Name; AccountManager.ActiveAccounts[e.Client].Class.Description = Database._ClassDatabase.GetClassByID(_CharacterCreateData.ClassID).Description; AccountManager.ActiveAccounts[e.Client].isNew = false; AccountManager.ActiveAccounts[e.Client].Save(); PKT_SERVER_ACCOUNTLOGINSUCCESS _newLoginSuccessMessage = new PKT_SERVER_ACCOUNTLOGINSUCCESS("Game"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTLOGINSUCCESS, _newLoginSuccessMessage), SendMode.Reliable); } }
public void OnClientMessageReceived(object sender, MessageReceivedEventArgs e) { using (Message message = e.GetMessage()) { if (message.Tag == (ushort)Pkt.PKT_CLIENT_ACCOUNTREGISTERINFO) { PKT_CLIENT_ACCOUNTREGISTERINFO registerInfo = message.Deserialize <PKT_CLIENT_ACCOUNTREGISTERINFO>(); //Check if account already exists if (AccountManager.GetAccount(registerInfo.Username) != null) { PKT_SERVER_ACCOUNTERROR _newError = new PKT_SERVER_ACCOUNTERROR("an account with this username already exists"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTERROR, _newError), SendMode.Reliable); return; } Account _newAccount = new Account(registerInfo.Username, registerInfo.Password, registerInfo.Email, registerInfo.Referral); _newAccount.ID = AccountManager.Accounts.Count + 1; AccountManager.AddAccount(_newAccount); AccountManager.Save(); //Tell them they registered. PKT_SERVER_ACCOUNTSUCCESS _newRegisterMessage = new PKT_SERVER_ACCOUNTSUCCESS("Registered, welcome to Project PBBG <color=white>" + registerInfo.Username + "</color>!"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTSUCCESS, _newRegisterMessage), SendMode.Reliable); }//Register if (message.Tag == (ushort)Pkt.PKT_CLIENT_ACCOUNTLOGININFO) { PKT_CLIENT_ACCOUNTLOGININFO loginInfo = message.Deserialize <PKT_CLIENT_ACCOUNTLOGININFO>(); if (AccountManager.GetAccount(loginInfo.Username) == null) //Account doesnt exist { PKT_SERVER_ACCOUNTERROR _newError = new PKT_SERVER_ACCOUNTERROR("account with this username doesnt exist"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTERROR, _newError), SendMode.Reliable); return; } if (AccountManager.GetAccount(loginInfo.Username).isBanned) //Account is banned { PKT_SERVER_ACCOUNTERROR _newError = new PKT_SERVER_ACCOUNTERROR("account is banned date: length: reason:"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTERROR, _newError), SendMode.Reliable); return; } if (AccountManager.isLoggedIn(loginInfo.Username)) //Account is already logged into the game. { PKT_SERVER_ACCOUNTERROR _newError = new PKT_SERVER_ACCOUNTERROR("account already logged in"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTERROR, _newError), SendMode.Reliable); return; } AccountManager.LoginAccount(e.Client, AccountManager.GetAccount(loginInfo.Username)); AccountManager.ActiveAccounts[e.Client].NetID = e.Client; TickManager._Tick += AccountManager.ActiveAccounts[e.Client].Tick; if (AccountManager.GetAccount(loginInfo.Username).isNew) { PKT_SERVER_ACCOUNTLOGINSUCCESS _newLoginSuccessMessage = new PKT_SERVER_ACCOUNTLOGINSUCCESS("Character Creation"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTLOGINSUCCESS, _newLoginSuccessMessage), SendMode.Reliable); } else { PKT_SERVER_ACCOUNTLOGINSUCCESS _newLoginSuccessMessage = new PKT_SERVER_ACCOUNTLOGINSUCCESS("Game"); e.Client.SendMessage(Message.Create((ushort)Pkt.PKT_SERVER_ACCOUNTLOGINSUCCESS, _newLoginSuccessMessage), SendMode.Reliable); } }//Login } }