From 34a16be36e98d93b0238eb92a179e6bcc71d5ad3 Mon Sep 17 00:00:00 2001 From: Ethan O'Brien <77750390+ethanaobrien@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:12:19 -0600 Subject: [PATCH] Stamina --- src/router/live.rs | 16 ++++++++++++---- src/router/login.rs | 5 ++++- src/router/user.rs | 4 ++-- src/router/userdata/mod.rs | 2 ++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/router/live.rs b/src/router/live.rs index b961efd..0a54028 100644 --- a/src/router/live.rs +++ b/src/router/live.rs @@ -1,7 +1,7 @@ use json; use json::object; use crate::router::global; -//use crate::encryption; +use crate::encryption; use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue}; use crate::router::userdata; @@ -25,12 +25,20 @@ pub fn start(_req: HttpRequest, _body: String) -> HttpResponse { global::send(resp) } -pub fn end(req: HttpRequest, _body: String) -> HttpResponse { - //let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); +pub fn end(req: HttpRequest, body: String) -> HttpResponse { + let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let blank_header = HeaderValue::from_static(""); let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc(key); let user2 = userdata::get_acc_home(key); + let mut user = userdata::get_acc(key); + + user["stamina"]["stamina"] = (user["stamina"]["stamina"].as_i32().unwrap() - body["use_lp"].as_i32().unwrap()).into(); + if user["stamina"]["stamina"].as_i32().unwrap() < 0 { + user["stamina"]["stamina"] = (0).into(); + } + user["stamina"]["last_updated_time"] = global::timestamp().into(); + + userdata::save_acc(key, user.clone()); let resp = object!{ "code": 0, diff --git a/src/router/login.rs b/src/router/login.rs index 41a8b67..6ee8bf5 100644 --- a/src/router/login.rs +++ b/src/router/login.rs @@ -10,7 +10,10 @@ pub fn dummy(req: HttpRequest, _body: String) -> HttpResponse { //let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap(); let blank_header = HeaderValue::from_static(""); let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); - let user = userdata::get_acc(key); + let mut user = userdata::get_acc(key); + + user["user"]["last_login_time"] = global::timestamp().into(); + userdata::save_acc(key, user.clone()); println!("Signin from uid: {}", user["user"]["id"].clone()); let resp = object!{ diff --git a/src/router/user.rs b/src/router/user.rs index 9157c85..d65a2c6 100644 --- a/src/router/user.rs +++ b/src/router/user.rs @@ -49,8 +49,9 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse { let key = req.headers().get("a6573cbe").unwrap_or(&blank_header).to_str().unwrap_or(""); let mut user = userdata::get_acc(key); + let ur = user["card_list"][user["card_list"].len() - 1]["id"].clone(); - let id = (body["master_character_id"].as_i32().unwrap() * 10000) + 7; //todo - is this alwasy the case? + let id = ur.as_i32().unwrap(); //todo user["user"]["favorite_master_card_id"] = id.into(); user["user"]["guest_smile_master_card_id"] = id.into(); user["user"]["guest_cool_master_card_id"] = id.into(); @@ -81,7 +82,6 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse { // User is rewarded with all base cards in the team they chose. This makes up their new deck_list - let ur = user["card_list"][user["card_list"].len() - 1]["id"].clone(); for (i, data) in cardstoreward.members().enumerate() { global::give_character(data.to_string(), &mut user); if i < 10 { diff --git a/src/router/userdata/mod.rs b/src/router/userdata/mod.rs index 44ba766..acfe784 100644 --- a/src/router/userdata/mod.rs +++ b/src/router/userdata/mod.rs @@ -3,6 +3,7 @@ use std::sync::{Mutex, MutexGuard}; use lazy_static::lazy_static; use json::{JsonValue, array, object}; use base64::{Engine as _, engine::general_purpose}; +use crate::router::global; lazy_static! { pub static ref ENGINE: Mutex> = Mutex::new(None); @@ -100,6 +101,7 @@ fn create_acc(conn: &Connection, uid: i64, login: &str) { home: json::parse(include_str!("new_user_home.json")).unwrap() }; data["userdata"]["user"]["id"] = uid.into(); + data["userdata"]["stamina"]["last_updated_time"] = global::timestamp().into(); init_data(conn, &format!("_{}_", key), data);