Implement base star event handler
This commit is contained in:
@ -51,17 +51,8 @@ pub fn get_login_bonus_info(id: i64) -> JsonValue {
|
||||
LOTTERY_INFO[id.to_string()].clone()
|
||||
}
|
||||
|
||||
pub fn bonus(req: HttpRequest, body: String) -> HttpResponse {
|
||||
let key = global::get_login(req.headers(), &body);
|
||||
let user = userdata::get_acc(&key);
|
||||
let mut user_home = userdata::get_acc_home(&key);
|
||||
|
||||
fn do_bonus(user_home: &mut JsonValue, bonuses: &mut JsonValue) -> JsonValue {
|
||||
let last_reset = global::timestamp_since_midnight();
|
||||
let mut bonuses = userdata::get_acc_loginbonus(&key);
|
||||
if bonuses["bonus_list"].is_empty() {
|
||||
global::start_login_bonus(1, &mut bonuses);
|
||||
}
|
||||
|
||||
let to_send;
|
||||
if bonuses["last_rewarded"].as_u64().unwrap() < last_reset {
|
||||
let mut to_rm = array![];
|
||||
@ -77,19 +68,58 @@ pub fn bonus(req: HttpRequest, body: String) -> HttpResponse {
|
||||
}
|
||||
let item_id = crate::router::user::get_info_from_id(info["days"][current]["masterLoginBonusRewardId"].as_i64().unwrap());
|
||||
|
||||
items::gift_item(&item_id, &format!("Login bonus day {}!", current+1), &mut user_home);
|
||||
items::gift_item(&item_id, &format!("Event login bonus day {}!", current+1), user_home);
|
||||
data["day_counts"].push(current + 1).unwrap();
|
||||
}
|
||||
for (i, data) in to_rm.members().enumerate() {
|
||||
bonuses["bonus_list"].array_remove(data.as_usize().unwrap() - i);
|
||||
}
|
||||
bonuses["last_rewarded"] = last_reset.into();
|
||||
userdata::save_acc_loginbonus(&key, bonuses.clone());
|
||||
to_send = bonuses["bonus_list"].clone();
|
||||
} else {
|
||||
to_send = array![];
|
||||
}
|
||||
to_send
|
||||
}
|
||||
|
||||
pub fn bonus(req: HttpRequest, body: String) -> HttpResponse {
|
||||
let key = global::get_login(req.headers(), &body);
|
||||
let user = userdata::get_acc(&key);
|
||||
let mut user_home = userdata::get_acc_home(&key);
|
||||
|
||||
let mut bonuses = userdata::get_acc_loginbonus(&key);
|
||||
if bonuses["bonus_list"].is_empty() {
|
||||
global::start_login_bonus(1, &mut bonuses);
|
||||
}
|
||||
let to_send = do_bonus(&mut user_home, &mut bonuses);
|
||||
|
||||
userdata::save_acc_loginbonus(&key, bonuses.clone());
|
||||
userdata::save_acc_home(&key, user_home);
|
||||
|
||||
let resp = object!{
|
||||
"code": 0,
|
||||
"server_time": global::timestamp(),
|
||||
"data": {
|
||||
"login_bonus_list": to_send,
|
||||
"start_time": bonuses["start_time"].clone(),
|
||||
"clear_mission_ids": user["clear_mission_ids"].clone()
|
||||
}
|
||||
};
|
||||
global::send(resp)
|
||||
}
|
||||
|
||||
pub fn bonus_event(req: HttpRequest, body: String) -> HttpResponse {
|
||||
let key = global::get_login(req.headers(), &body);
|
||||
let user = userdata::get_acc(&key);
|
||||
let mut user_home = userdata::get_acc_home(&key);
|
||||
|
||||
let mut bonuses = userdata::get_acc_eventlogin(&key);
|
||||
if bonuses["bonus_list"].is_empty() {
|
||||
global::start_login_bonus(20039, &mut bonuses);
|
||||
}
|
||||
let to_send = do_bonus(&mut user_home, &mut bonuses);
|
||||
|
||||
userdata::save_acc_eventlogin(&key, bonuses.clone());
|
||||
userdata::save_acc_home(&key, user_home);
|
||||
|
||||
let resp = object!{
|
||||
|
Reference in New Issue
Block a user