Compare commits

...

2 Commits

Author SHA1 Message Date
Ethan O'Brien
d61b27af8f Add coins/primogems and item limits 2026-02-10 14:51:51 -06:00
Ethan O'Brien
8e4300a7ea Fix cheat endpoint and jp client 2026-02-10 14:35:19 -06:00
3 changed files with 52 additions and 25 deletions

View File

@@ -43,33 +43,43 @@ pub fn get_region(headers: &HeaderMap) -> bool {
} }
pub fn check_for_region(user: &mut JsonValue, headers: &HeaderMap) { 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()}; // returns true if jp
let is_jp = get_region(headers); if !get_region(headers) {
if !is_jp || items.is_empty() {
return; return;
} }
let mut id = 0;
for (i, data) in items.members().enumerate() { let targets = [
if data["master_item_id"] == 15570008 { 15570001, 15570002, 15570003, 15570004,
id = i + 1; 15570005, 15570006, 15570007, 15570008
break; ];
}
} let list = if !user["data"]["updated_value_list"]["item_list"].is_empty() {
if id > 0 { &mut user["data"]["updated_value_list"]["item_list"]
if user["data"]["updated_value_list"]["item_list"].is_empty() { } else {
user["data"]["item_list"].array_remove(id - 1); &mut user["data"]["item_list"]
} else { };
user["data"]["updated_value_list"]["item_list"].array_remove(id - 1);
} let mut to_remove: Vec<usize> = list
.members()
.enumerate()
.filter(|(_, item)| {
targets.contains(&item["master_item_id"].as_i64().unwrap_or(0))
})
.map(|(i, _)| i)
.collect();
to_remove.reverse();
for i in to_remove {
list.array_remove(i);
} }
} }
// true - limit reached // true - limit reached
// false - all good // false - all good
pub const GIFT_LIMIT: usize = 100000; pub const GIFT_LIMIT: usize = 100000;
pub const LIMIT_ITEMS: i64 = 200000000; pub const LIMIT_ITEMS: i64 = 9999999;
pub const LIMIT_COINS: i64 = 2000000000; pub const LIMIT_COINS: i64 = 999999999;
pub const LIMIT_PRIMOGEMS: i64 = 1000000; pub const LIMIT_PRIMOGEMS: i64 = 9999999;
fn give(array: &mut JsonValue, shop_id: &str, master_item_id: i64, limit: i64, count_id: &str, count: i64, default_push: JsonValue) -> bool { fn give(array: &mut JsonValue, shop_id: &str, master_item_id: i64, limit: i64, count_id: &str, count: i64, default_push: JsonValue) -> bool {
for data in array.members_mut() { for data in array.members_mut() {

View File

@@ -349,31 +349,38 @@ pub fn cheat(req: HttpRequest, _body: String) -> HttpResponse {
return error("Not logged in"); return error("Not logged in");
} }
let key = userdata::webui_login_token(&token.unwrap()); let key = userdata::webui_login_token(&token.unwrap());
if key.is_some() { if key.is_none() {
return error("Not logged in"); return error("Not logged in");
} }
let key = key.unwrap(); let key = key.unwrap();
let mut user = userdata::get_acc_home(&key); let mut user = userdata::get_acc_home(&key);
for item in ITEM.entries() { for item in ITEM.entries() {
let id = item.0.parse::<i32>().unwrap_or(0); let id = item.0.parse::<i32>().unwrap_or(0);
let data = item.1; let data = item.1;
if id == 0 { if id == 0 {
continue; continue;
} }
items::gift_item_basic(id, items::LIMIT_ITEMS, data["reward_type"].as_i32().unwrap(), "You have cheated. Here are \"gifts\"", &mut user); let reward_type = data["reward_type"].as_i32().unwrap();
let limit = if reward_type == 4 {
items::LIMIT_COINS
} else if reward_type == 1 {
items::LIMIT_PRIMOGEMS
} else {
items::LIMIT_ITEMS
};
items::gift_item_basic(id, limit, reward_type, "You have cheated. Here are \"gifts\".", &mut user);
} }
userdata::save_acc_home(&key, user); userdata::save_acc_home(&key, user);
let resp = object!{ let resp = object!{
result: "OK" result: "OK"
}; };
HttpResponse::Ok() HttpResponse::Ok()
//.insert_header(("Access-Control-Allow-Origin", FRONTEND_DOMAIN)) //.insert_header(("Access-Control-Allow-Origin", FRONTEND_DOMAIN))
//.insert_header(("Access-Control-Allow-Credentials", "true")) //.insert_header(("Access-Control-Allow-Credentials", "true"))
.insert_header(ContentType::json()) .insert_header(ContentType::json())
.body(json::stringify(resp)) .body(json::stringify(resp))
} }

View File

@@ -1,4 +1,14 @@
{ {
"1": {
"reward_type": 4,
"en": "Coin",
"jp": "Coin"
},
"1000": {
"reward_type": 1,
"en": "Primogem (idk what its actually called)",
"jp": "Primogem (idk what its actually called)"
},
"15010001": { "15010001": {
"reward_type": 3, "reward_type": 3,
"en": "1x Scout Ticket", "en": "1x Scout Ticket",