private void CGameStateController_OnProcessSecTimer(CGameStateController gs) { if (DateTime.Now - m_LastGlobalAccSave >= m_GlobalAccSaveDueTime) { for (int i = 0; i < gs.Players.Length; i++) { if (gs.Players[i]?.State == EPlayerState.AT_WORLD) { var account = gs.Players[i].AccountData.Value; if (AccountCRUD.TrySaveAccount(ref account) != AccountCRUD.EResult.NO_ERROR) { // TODO: the account could not be saved for some reason. // Do something... throw new Exception($"The account {gs.Players[i].AccountData.Value.Info.LoginInfo.AccName} couldn't be saved."); } else { W2Log.Write($"The account {gs.Players[i].AccountData.Value.Info.LoginInfo.AccName} was saved successfuly.", ELogType.GAME_EVENT); } } } m_LastGlobalAccSave = gs.SinceInit; } }
public static ERequestResult HandleRequest(CGameStateController gs, CPlayer player) { if (gs.PlayerState[player] != EPlayerState.UNITIALIZED) { return(ERequestResult.PLAYER_INCONSISTENT_STATE); } MAccountLoginPacket packet = MyMarshal.GetStructure <MAccountLoginPacket>(player.RecvPacket); MAccountFile?nAccFile; AccountCRUD.EErrorMsg accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile); if (accErr == AccountCRUD.EErrorMsg.NO_ERROR) { MLoginSuccessfulPacket answer = PacketHelper.GetEmptyValid <MLoginSuccessfulPacket>(MLoginSuccessfulPacket.Opcode); MAccountFile accFile = nAccFile.Value; answer.AccName = accFile.Info.LoginInfo.AccName; answer.Cargo = accFile.Cargo; answer.CargoCoin = accFile.CargoCoin; for (int i = 0; i < GameBasics.MAXL_ACC_MOB; i++) { unsafe { answer.SelChar.Coin[i] = accFile.MobCore[i].Coin; answer.SelChar.Equip[i] = accFile.MobCore[i].Equip; answer.SelChar.Exp[i] = accFile.MobCore[i].Exp; answer.SelChar.Guild[i] = accFile.MobCore[i].Guild; answer.SelChar.Name[i] = accFile.MobCore[i].Name; answer.SelChar.Score[i] = accFile.MobCore[i].BaseScore; answer.SelChar.SPosX[i] = accFile.MobCore[i].StellarGemPosition.X; answer.SelChar.SPosY[i] = accFile.MobCore[i].StellarGemPosition.Y; } } player.SendPacket(MyMarshal.GetBytes(answer)); } else if (accErr == AccountCRUD.EErrorMsg.ACC_NOT_FOUND) { MTextMessagePacket answer = PacketHelper.GetEmptyValid <MTextMessagePacket>(MTextMessagePacket.Opcode); answer.Message = "Esta conta não foi encontrada."; player.SendPacket(MyMarshal.GetBytes(answer)); } else { return(ERequestResult.UNKNOWN); } return(ERequestResult.NO_ERROR); }
public ActionResult Register(Account reg) { if (AccountCRUD.RegisterUser(reg)) { return(Content("<script>alert('Account Registeration Successful.');window.location = 'Login';</script>")); } else { return(Content("<script>alert('Account Registeration Failed.');window.location = 'SignUp'</script>")); } }
public ActionResult ChangePassword(FormCollection collection) { //int id = 1; string newPass = collection["Password"]; if (AccountCRUD.ChangePassword((int)Session["UserID"], newPass)) { return(Content("<script>alert('Password Changed Successfully Successfully.');window.location.href=document.referrer;</script>")); } else { return(Content("<script>alert('Password could not be Changed');window.location.href=document.referrer</script>")); } }
public ActionResult UpdateUserPriviledges(FormCollection collection) { int id = Int32.Parse(collection["UserID"]); int value = Int32.Parse(collection["AccessStatus"]); if (AccountCRUD.ChangePriviledges(id, value == 1 ? "Admin" : "User")) { return(Content("<script>alert('User Status has been Updated Successfully.');window.location.href=document.referrer;</script>")); } else { return(Content("<script>alert('User Status could not be Updated.');window.location.href=document.referrer</script>")); } }
public ActionResult DeleteAccount() { List <Order> orders = OrderCRUD.GetUserOrders((int)Session["UserID"]); //if any order exists that hasnt been delievered then cannot delete account if (orders.FindIndex(item => item.OrderStatus != "Delivered") < 0) { AccountCRUD.RemoveUser((int)Session["UserID"]); return(Redirect("Home")); } else { return(Content("<script>alert('You still have pending Orders.');window.location.href=document.referrer</script>")); } }
public ActionResult Authenticate(string email, string password) { Account UserAcc = AccountCRUD.UserLogin(email, password); if (UserAcc != null) { Session["UserID"] = UserAcc.UserID; Session["UserName"] = UserAcc.Username; Session["Priviledges"] = UserAcc.AccStatus; Session["OrderItems"] = new List <Tuple <int, int, int> >(); return(RedirectToAction(UserAcc.AccStatus == "Admin" ? "Console" : "DashBoard", UserAcc.AccStatus)); } else { return(Content("<script>alert('Incorrect Email or Password.');window.location = 'Login';</script>")); } }
public ActionResult Authenticate(string uname, string password) { Account UserAcc = AccountCRUD.UserLogin(uname, password); if (UserAcc != null) { Session["UserID"] = UserAcc.UserID; Session["FullName"] = UserAcc.FullName; Session["UserType"] = UserAcc.AccType; Session["PrisonID"] = UserAcc.Prison.PrisonID; return(RedirectToAction("DashBoard", UserAcc.AccType == "J" ? "Jailer" : "JailO")); } else { return(Content("<script>alert('Incorrect Email or Password.');window.location = 'Login';</script>")); } }
public ActionResult ChangeInfo(FormCollection collection) { Account myacc = new Account(); myacc.UserID = Int32.Parse(collection["UserID"]); myacc.Email = collection["Email"]; myacc.Username = collection["Username"]; myacc.ContactNo = collection["ContactNo"]; myacc.Address = collection["Address"]; myacc.Gender = Convert.ToChar(collection["Gender"]); if (AccountCRUD.UpdateUser(myacc)) { return(Content("<script>alert('Profile Edited Successfully.');window.location.href=document.referrer;</script>")); } else { return(Content("<script>alert('Profile Could not be Updated');window.location.href=document.referrer</script>")); } }
public ActionResult EditInfo(int id) { return(PartialView("_EditInfo", AccountCRUD.GetAccount(id))); }
//User Account related methods public ActionResult ProfileInfo() { return(View(AccountCRUD.GetAccount((int)Session["UserID"]))); }
public ActionResult UserDetail(int id) { return(PartialView("_UserDetail", AccountCRUD.GetAccount(id))); }
public ActionResult Users() { return(View(AccountCRUD.GetAllUsers())); }
private EPlayerRequestResult CGameStateController_OnProcessPacket(CGameStateController gs, CPlayer player) { switch (player.RecvPacket.ReadNextUShort(4)) { case MAccountLoginPacket.Opcode: { if (player.State != EPlayerState.WAITING_TO_LOGIN) { return(EPlayerRequestResult.PLAYER_INCONSISTENT_STATE); } MAccountLoginPacket packet = W2Marshal.GetStructure <MAccountLoginPacket>(player.RecvPacket); MAccountFile? nAccFile; AccountCRUD.EResult accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile); if (accErr != AccountCRUD.EResult.NO_ERROR) { // if account doesn't exist... if (accErr == AccountCRUD.EResult.ACC_NOT_FOUND) { // create a new account file MAccountFile newAccFile = W2Marshal.CreateEmpty <MAccountFile>(); // set the username & password newAccFile.Info.LoginInfo.AccName = packet.AccName; newAccFile.Info.LoginInfo.Password = packet.Password; AccountCRUD.EResult createAccErr = AccountCRUD.TrySaveAccount(ref newAccFile); if (createAccErr == AccountCRUD.EResult.NO_ERROR) { accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile); if (accErr != AccountCRUD.EResult.NO_ERROR) { return(EPlayerRequestResult.UNKNOWN); } } else if (createAccErr == AccountCRUD.EResult.ACC_NOT_SAVED) { MTextMessagePacket createFailedAnswer = W2Marshal.GetEmptyValid <MTextMessagePacket>(MTextMessagePacket.Opcode); createFailedAnswer.Message = "Não foi possível criar a conta."; player.SendPacket(createFailedAnswer); return(EPlayerRequestResult.NO_ERROR); } else if (createAccErr == AccountCRUD.EResult.UNKNOWN) { return(EPlayerRequestResult.UNKNOWN); } } else { return(EPlayerRequestResult.UNKNOWN); } } MLoginSuccessfulPacket answer = W2Marshal.GetEmptyValid <MLoginSuccessfulPacket>(MLoginSuccessfulPacket.Opcode); MAccountFile accFile = nAccFile.Value; answer.AccName = accFile.Info.LoginInfo.AccName; answer.Cargo = accFile.Cargo; answer.CargoCoin = accFile.CargoCoin; for (int i = 0; i < GameBasics.MAXL_ACC_MOB; i++) { unsafe { answer.SelChar.Coin[i] = accFile.MobCore[i].Coin; answer.SelChar.Equip[i] = accFile.MobCore[i].Equip; answer.SelChar.Exp[i] = accFile.MobCore[i].Exp; answer.SelChar.Guild[i] = accFile.MobCore[i].Guild; answer.SelChar.Name[i] = accFile.MobCore[i].Name; answer.SelChar.Score[i] = accFile.MobCore[i].BaseScore; answer.SelChar.SPosX[i] = accFile.MobCore[i].StellarGemPosition.X; answer.SelChar.SPosY[i] = accFile.MobCore[i].StellarGemPosition.Y; } } player.SendPacket(answer); player.State = EPlayerState.SEL_CHAR; return(EPlayerRequestResult.NO_ERROR); } default: return(EPlayerRequestResult.PACKET_NOT_HANDLED); } }
private EPlayerRequestResult CGameStateController_OnProcessPacket(CGameStateController gs, CPlayer player) { switch (player.RecvPacket.ReadNextUShort(4)) { case MAccountLoginPacket.Opcode: { if (player.State != EPlayerState.WAITING_TO_LOGIN) { return(EPlayerRequestResult.PLAYER_INCONSISTENT_STATE); } MAccountLoginPacket packet = W2Marshal.GetStructure <MAccountLoginPacket>(player.RecvPacket); MAccountFile? nAccFile; AccountCRUD.EResult accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile); if (accErr == AccountCRUD.EResult.NO_ERROR) { MLoginSuccessfulPacket answer = W2Marshal.GetEmptyValid <MLoginSuccessfulPacket>(MLoginSuccessfulPacket.Opcode); MAccountFile accFile = nAccFile.Value; answer.AccName = accFile.Info.LoginInfo.AccName; answer.Cargo = accFile.Cargo; answer.CargoCoin = accFile.CargoCoin; for (int i = 0; i < GameBasics.MAXL_ACC_MOB; i++) { unsafe { answer.SelChar.Coin[i] = accFile.MobCore[i].Coin; answer.SelChar.Equip[i] = accFile.MobCore[i].Equip; answer.SelChar.Exp[i] = accFile.MobCore[i].Exp; answer.SelChar.Guild[i] = accFile.MobCore[i].Guild; answer.SelChar.Name[i] = accFile.MobCore[i].Name; answer.SelChar.Score[i] = accFile.MobCore[i].BaseScore; answer.SelChar.SPosX[i] = accFile.MobCore[i].StellarGemPosition.X; answer.SelChar.SPosY[i] = accFile.MobCore[i].StellarGemPosition.Y; } } player.SendPacket(answer); player.State = EPlayerState.SEL_CHAR; } else if (accErr == AccountCRUD.EResult.ACC_NOT_FOUND) { MTextMessagePacket answer = W2Marshal.GetEmptyValid <MTextMessagePacket>(MTextMessagePacket.Opcode); answer.Message = "Esta conta não foi encontrada."; player.SendPacket(answer); } else { return(EPlayerRequestResult.UNKNOWN); } return(EPlayerRequestResult.NO_ERROR); } default: return(EPlayerRequestResult.PACKET_NOT_HANDLED); } }