feat: 调整服务器时间优化
This commit is contained in:
parent
621b554711
commit
a5fb3cc100
@ -33,9 +33,15 @@ pub fn events(_req: HttpRequest) -> Option<JsonValue> {
|
|||||||
|
|
||||||
fn extract_number_from_code(code: String, goods: &str) -> Option<i64> {
|
fn extract_number_from_code(code: String, goods: &str) -> Option<i64> {
|
||||||
if code.starts_with(goods) {
|
if code.starts_with(goods) {
|
||||||
let number_str = &code[code.len()..];
|
let number_str = &code[goods.len()..];
|
||||||
match number_str.parse::<i64>() {
|
match number_str.parse::<i64>() {
|
||||||
Ok(number) => Some(number),
|
Ok(number) => {
|
||||||
|
if number >= 999999999 {
|
||||||
|
Some(1)
|
||||||
|
} else {
|
||||||
|
Some(number)
|
||||||
|
}
|
||||||
|
},
|
||||||
Err(_) => Some(1)
|
Err(_) => Some(1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -51,16 +57,16 @@ pub fn serial_code(req: HttpRequest, body: String) -> Option<JsonValue> {
|
|||||||
let mut item_list = array![];
|
let mut item_list = array![];
|
||||||
let code = body["input_code"].to_string();
|
let code = body["input_code"].to_string();
|
||||||
|
|
||||||
if let Some(number) = extract_number_from_code(code.clone(), "金币") {
|
if let Some(number) = extract_number_from_code(code.clone(), "coins") {
|
||||||
item_list.push(items::gift_item_basic(1, number, 4, "请亏我全", &mut user)).ok()?;
|
item_list.push(items::gift_item_basic(1, number, 4, "请亏我全", &mut user)).ok()?;
|
||||||
} else if let Some(number) = extract_number_from_code(code.clone(), "钻石") {
|
} else if let Some(number) = extract_number_from_code(code.clone(), "gems") {
|
||||||
item_list.push(items::gift_item_basic(1, number, 1, "你的UR和我的R", &mut user)).ok()?;
|
item_list.push(items::gift_item_basic(1, number, 1, "你的UR和我的R", &mut user)).ok()?;
|
||||||
} else if let Some(number) = extract_number_from_code(code.clone(), "练习券") {
|
} else if let Some(number) = extract_number_from_code(code.clone(), "training") {
|
||||||
item_list.push(items::gift_item_basic(16005003, number, 3, "A~A~O!", &mut user)).ok()?;
|
item_list.push(items::gift_item_basic(16005003, number, 3, "A~A~O!", &mut user)).ok()?;
|
||||||
item_list.push(items::gift_item_basic(17001003, number, 3, "A~A~O!", &mut user)).ok()?;
|
item_list.push(items::gift_item_basic(17001003, number, 3, "A~A~O!", &mut user)).ok()?;
|
||||||
} else if let Some(number) = extract_number_from_code(code.clone(), "活动UR") {
|
} else if let Some(number) = extract_number_from_code(code.clone(), "UR") {
|
||||||
for item in UR_ARRAY {
|
for item in UR_ARRAY {
|
||||||
item_list.push(items::gift_item_basic(item, number, 2, "给你UR", &mut user)).ok()?;
|
item_list.push(items::gift_item_basic(item, number, 2, "活动UR+1", &mut user)).ok()?;
|
||||||
}
|
}
|
||||||
} else if let Some(number) = extract_number_from_code(code.clone(), "PT") {
|
} else if let Some(number) = extract_number_from_code(code.clone(), "PT") {
|
||||||
for item in PT_ARRAY {
|
for item in PT_ARRAY {
|
||||||
|
@ -8,7 +8,7 @@ use base64::{Engine as _, engine::general_purpose};
|
|||||||
use crate::router::global;
|
use crate::router::global;
|
||||||
use crate::router::items;
|
use crate::router::items;
|
||||||
use crate::sql::SQLite;
|
use crate::sql::SQLite;
|
||||||
use crate::{include_file, logger};
|
use crate::{get_args, include_file, logger};
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref DATABASE: SQLite = SQLite::new("userdata.db", setup_tables);
|
static ref DATABASE: SQLite = SQLite::new("userdata.db", setup_tables);
|
||||||
@ -543,6 +543,7 @@ pub fn webui_get_user(token: &str) -> Option<JsonValue> {
|
|||||||
Some(object!{
|
Some(object!{
|
||||||
userdata: get_acc(&login_token),
|
userdata: get_acc(&login_token),
|
||||||
loginbonus: get_acc_loginbonus(&login_token),
|
loginbonus: get_acc_loginbonus(&login_token),
|
||||||
|
server_time_set: get_server_data(&login_token)["server_time_set"].clone(),
|
||||||
time: get_server_data(&login_token)["server_time"].clone()
|
time: get_server_data(&login_token)["server_time"].clone()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -571,7 +572,7 @@ pub fn webui_submit_login_bonus(bonus_id: i64, is_add: bool, token: &str) -> Jso
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_server_time(time: i64, token: &str) -> JsonValue {
|
pub fn set_server_time(mut time: i64, token: &str) -> JsonValue {
|
||||||
if time as u64 > global::timestamp() {
|
if time as u64 > global::timestamp() {
|
||||||
return object!{
|
return object!{
|
||||||
result: "ERR",
|
result: "ERR",
|
||||||
@ -588,6 +589,10 @@ pub fn set_server_time(time: i64, token: &str) -> JsonValue {
|
|||||||
let login_token = login_token.unwrap();
|
let login_token = login_token.unwrap();
|
||||||
let mut server_data = get_server_data(&login_token);
|
let mut server_data = get_server_data(&login_token);
|
||||||
server_data["server_time_set"] = global::timestamp().into();
|
server_data["server_time_set"] = global::timestamp().into();
|
||||||
|
if time == -1 {
|
||||||
|
let args = get_args();
|
||||||
|
time = args.max_time as i64;
|
||||||
|
}
|
||||||
server_data["server_time"] = time.into();
|
server_data["server_time"] = time.into();
|
||||||
save_server_data(&login_token, server_data);
|
save_server_data(&login_token, server_data);
|
||||||
|
|
||||||
|
@ -48,7 +48,6 @@ function Bonus() {
|
|||||||
|
|
||||||
const handleRemoveItem = async (index) => {
|
const handleRemoveItem = async (index) => {
|
||||||
const updatedItems = [...submittedItems];
|
const updatedItems = [...submittedItems];
|
||||||
updatedItems.splice(index, 1);
|
|
||||||
let resp = await Request("/api/webui/submitLoginBonus", {
|
let resp = await Request("/api/webui/submitLoginBonus", {
|
||||||
bonus_id: updatedItems[index],
|
bonus_id: updatedItems[index],
|
||||||
is_add: false
|
is_add: false
|
||||||
@ -58,6 +57,7 @@ function Bonus() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
error[1]("");
|
error[1]("");
|
||||||
|
updatedItems.splice(index, 1);
|
||||||
setSubmittedItems(updatedItems);
|
setSubmittedItems(updatedItems);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -118,12 +118,10 @@ function Home() {
|
|||||||
const handleSubmit = async (event) => {
|
const handleSubmit = async (event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
let time = Math.round(new Date(inputValue.trim()).getTime() / 1000);
|
let time = Math.round(new Date(inputValue.trim()).getTime() / 1000);
|
||||||
if (inputValue.trim() === "-1") {
|
if (inputValue.trim() === "0") {
|
||||||
time = 1711741114;
|
|
||||||
} else if (inputValue.trim() === "0") {
|
|
||||||
time = 0;
|
time = 0;
|
||||||
}
|
}
|
||||||
if (time < 0 || isNaN(time)) return;
|
if (time < -1 || isNaN(time)) return;
|
||||||
let resp = await Request("/api/webui/set_time", {
|
let resp = await Request("/api/webui/set_time", {
|
||||||
timestamp: time
|
timestamp: time
|
||||||
});
|
});
|
||||||
@ -133,7 +131,7 @@ function Home() {
|
|||||||
}
|
}
|
||||||
error[1]("");
|
error[1]("");
|
||||||
if (time === 0) {
|
if (time === 0) {
|
||||||
setServerTime("now");
|
setServerTime(new Date().toString());
|
||||||
} else {
|
} else {
|
||||||
setServerTime((new Date(time * 1000)).toString());
|
setServerTime((new Date(time * 1000)).toString());
|
||||||
}
|
}
|
||||||
@ -159,12 +157,15 @@ function Home() {
|
|||||||
exp: 10,
|
exp: 10,
|
||||||
last_login_time: 5
|
last_login_time: 5
|
||||||
},
|
},
|
||||||
|
server_time_set: new Date()
|
||||||
time: new Date()
|
time: new Date()
|
||||||
}*/
|
}*/
|
||||||
if (resp.data.time === 0) {
|
if (resp.data.time === 0) {
|
||||||
setServerTime("now");
|
setServerTime(new Date().toString());
|
||||||
} else {
|
} else {
|
||||||
setServerTime((new Date(resp.data.time * 1000)).toString());
|
let deltaTime = new Date().getTime() - resp.data.server_time_set * 1000
|
||||||
|
let gameTime = resp.data.time * 1000 + deltaTime
|
||||||
|
setServerTime((new Date(gameTime)).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
userdata(
|
userdata(
|
||||||
@ -189,7 +190,7 @@ function Home() {
|
|||||||
{ user }
|
{ user }
|
||||||
<h2>服务器时间</h2>
|
<h2>服务器时间</h2>
|
||||||
<div id="error"> { error[0] ? <p>Error: { error[0] } </p> : <p></p> } </div>
|
<div id="error"> { error[0] ? <p>Error: { error[0] } </p> : <p></p> } </div>
|
||||||
<p>当前时间设置的值为 { serverTime }. 将其设置为0将会设置为当前时间,而-1则会重置它。时间的推进仍将基于您设置此时间戳的时间。</p>
|
<p>当前游戏时间为 { serverTime }. 将其设置为0将会设置为当前时间,而-1则会重置到开服时间。时间的推进仍将基于您设置此时间戳的时间。</p>
|
||||||
<form onSubmit={handleSubmit}>
|
<form onSubmit={handleSubmit}>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user