Check for region specific items when sending userdata

This commit is contained in:
Ethan O'Brien
2024-05-31 21:34:11 -05:00
parent 53c9f7ea9c
commit 23c09cd4d3
7 changed files with 42 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
use json::{array, object, JsonValue};
use rand::Rng;
use actix_web::{HttpRequest};
use actix_web::{HttpRequest, http::header::{HeaderMap, HeaderValue}};
use crate::encryption;
use crate::router::{userdata, global, databases};
@@ -24,6 +24,34 @@ pub fn remove_gems(user: &mut JsonValue, amount: i64) {
user["gem"]["total"] = (free + paid).into();
}
pub fn get_region(headers: &HeaderMap) -> bool {
let blank_header = HeaderValue::from_static("");
let asset_version = headers.get("aoharu-asset-version").unwrap_or(&blank_header).to_str().unwrap_or("");
asset_version == global::ASSET_VERSION_JP
}
pub fn check_for_region(user: &mut JsonValue, headers: &HeaderMap) {
let items = if user["data"]["updated_value_list"]["item_list"].is_empty() {user["data"]["item_list"].clone()} else {user["data"]["updated_value_list"]["item_list"].clone()};
let is_jp = get_region(headers);
if !is_jp || items.is_empty() {
return;
}
let mut id = 0;
for (i, data) in items.members().enumerate() {
if data["master_item_id"] == 15570008 {
id = i + 1;
break;
}
}
if id > 0 {
if user["data"]["updated_value_list"]["item_list"].is_empty() {
user["data"]["item_list"].array_remove(id - 1);
} else {
user["data"]["updated_value_list"]["item_list"].array_remove(id - 1);
}
}
}
// true - limit reached
// false - all good
const GIFT_LIMIT: usize = 100000;