move global buff toggle logic in commands, add compile flags for playerheartbeat data
This commit is contained in:
+16
-16
@@ -110,24 +110,24 @@ impl FreesrData {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn refresh_persistent(&mut self) -> anyhow::Result<()> {
|
||||
let persistent: Persistent = serde_json::from_str(
|
||||
&tokio::fs::read_to_string("persistent")
|
||||
.await
|
||||
.unwrap_or_default(),
|
||||
)
|
||||
.unwrap_or_default();
|
||||
// pub async fn refresh_persistent(&mut self) -> anyhow::Result<()> {
|
||||
// let persistent: Persistent = serde_json::from_str(
|
||||
// &tokio::fs::read_to_string("persistent")
|
||||
// .await
|
||||
// .unwrap_or_default(),
|
||||
// )
|
||||
// .unwrap_or_default();
|
||||
|
||||
self.lineups = persistent.lineups;
|
||||
self.position = persistent.position;
|
||||
self.scene = persistent.scene;
|
||||
self.main_character = persistent.main_character;
|
||||
self.march_type = persistent.march_type;
|
||||
self.enable_sw_global = persistent.enable_sw_global;
|
||||
self.enable_castorice_global = persistent.enable_castorice_global;
|
||||
// self.lineups = persistent.lineups;
|
||||
// self.position = persistent.position;
|
||||
// self.scene = persistent.scene;
|
||||
// self.main_character = persistent.main_character;
|
||||
// self.march_type = persistent.march_type;
|
||||
// self.enable_sw_global = persistent.enable_sw_global;
|
||||
// self.enable_castorice_global = persistent.enable_castorice_global;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
// Ok(())
|
||||
// }
|
||||
|
||||
async fn verify_lineup(&mut self) {
|
||||
if self.lineups.is_empty() {
|
||||
|
||||
@@ -84,9 +84,9 @@ async fn create_battle_info(
|
||||
caster_id: u32,
|
||||
skill_index: u32,
|
||||
) -> SceneBattleInfo {
|
||||
if let Some(player) = session.json_data.get_mut() {
|
||||
let _ = player.refresh_persistent().await;
|
||||
}
|
||||
// if let Some(player) = session.json_data.get_mut() {
|
||||
// let _ = player.refresh_persistent().await;
|
||||
// }
|
||||
|
||||
let Some(player) = session.json_data.get() else {
|
||||
tracing::error!("data is not set!");
|
||||
|
||||
@@ -13,8 +13,10 @@ use super::*;
|
||||
const SERVER_UID: u32 = 727;
|
||||
const SERVER_HEAD_ICON: u32 = 201402;
|
||||
const SERVER_CHAT_BUBBLE_ID: u32 = 220005;
|
||||
const SERVER_CHAT_HISTORY: [&str; 6] = [
|
||||
const SERVER_CHAT_HISTORY: &[&str] = &[
|
||||
"'lua {path_to_lua_script}' execute lua script",
|
||||
"'sw {on/off}' enable/disable silver wolf global buff",
|
||||
"'castorice {on/off}' enable/disable castorice global buff",
|
||||
"'sync' to synchronize stats between json and in-game view",
|
||||
"'mc {mc_id}' mc_id can be set from 8001 to 8008",
|
||||
"'march {march_id}' march_id can be set 1001 or 1224",
|
||||
@@ -125,6 +127,40 @@ pub async fn on_send_msg_cs_req(
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
"sw" | "castorice" => {
|
||||
let status = args.first().unwrap_or(&"on").to_lowercase();
|
||||
let enabled = match status.as_str() {
|
||||
"on" | "1" | "true" => true,
|
||||
"off" | "0" | "false" => false,
|
||||
_ => true,
|
||||
};
|
||||
|
||||
if cmd == "sw" {
|
||||
json.enable_sw_global = Some(enabled);
|
||||
} else {
|
||||
json.enable_castorice_global = Some(enabled);
|
||||
}
|
||||
|
||||
json.save_persistent().await;
|
||||
|
||||
session
|
||||
.send(create_send_message(
|
||||
25,
|
||||
SERVER_UID,
|
||||
body.message_datas
|
||||
.as_ref()
|
||||
.map(|v| v.message_type)
|
||||
.unwrap_or_default(),
|
||||
body.chat_type,
|
||||
format!(
|
||||
"{} Global Buff: {}",
|
||||
if cmd == "sw" { "SW" } else { "Castorice" },
|
||||
if enabled { "Enabled" } else { "Disabled" }
|
||||
),
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
"mc" => {
|
||||
let mc = MultiPathAvatar::from(
|
||||
args.first()
|
||||
|
||||
@@ -20,7 +20,7 @@ pub async fn on_player_heart_beat_cs_req(
|
||||
res.download_data = Some(ClientDownloadData {
|
||||
version: 51,
|
||||
time: res.server_time_ms as i64,
|
||||
data: rbase64::decode("bG9jYWwgTUFYX0ZQUyA9IDM2MApsb2NhbCBCRVRBX1dNID0gIiIKCmxvY2FsIGZ1bmN0aW9uIGxvZyhtc2cpCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hGcHMoKQogICAgQ1MuVW5pdHlFbmdpbmUuQXBwbGljYXRpb24udGFyZ2V0RnJhbWVSYXRlID0gTUFYX0ZQUwogICAgQ1MuVW5pdHlFbmdpbmUuUXVhbGl0eVNldHRpbmdzLnZTeW5jQ291bnQgPSAwCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hCZXRhV20oKQogICAgLS0gQmV0YSBXYXRlcm1hcmsKICAgIENTLlVuaXR5RW5naW5lLkdhbWVPYmplY3QuRmluZCgiVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKSIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPSBCRVRBX1dNCgogICAgLS0gVUlEIFdhdGVybWFyawogICAgQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPQogICAgICAgICI8Y29sb3I9IzAwZTFmZj5Sb2JpblNSISB8IDwvY29sb3I+IiAuLgogICAgICAgICI8Y29sb3I9IzAwZTFmZj4iIC4uCiAgICAgICAgQ1MuUlBHLkNsaWVudC5HbG9iYWxWYXJzLnNfVmVyc2lvbkRhdGE6R2V0U2VydmVyUGFrVHlwZVZlcnNpb24oKSAuLgogICAgICAgICI8L2NvbG9yPiIKZW5kCgoKbG9jYWwgZnVuY3Rpb24gbWFpbigpCiAgICBwYXRjaEJldGFXbSgpCmVuZAoKeHBjYWxsKG1haW4sIGxvZyk=").unwrap(),
|
||||
data: rbase64::decode("BAEcA2xvZwJDUwtVbml0eUVuZ2luZQtBcHBsaWNhdGlvbg90YXJnZXRGcmFtZVJhdGUPUXVhbGl0eVNldHRpbmdzCnZTeW5jQ291bnQIcGF0Y2hGcHMKR2FtZU9iamVjdARGaW5kKFVJUm9vdC9BYm92ZURpYWxvZy9CZXRhSGludERpYWxvZyhDbG9uZSkDUlBHBkNsaWVudA1Mb2NhbGl6ZWRUZXh0BnR5cGVvZhZHZXRDb21wb25lbnRJbkNoaWxkcmVuJjxjb2xvcj0jMDBlMWZmPnQubWUvbmVvbnRlYW0yNTwvY29sb3I+BHRleHQLVmVyc2lvblRleHQiPGNvbG9yPSMwMGUxZmY+Um9iaW5TUiEgfCA8L2NvbG9yPg88Y29sb3I9IzAwZTFmZj4KR2xvYmFsVmFycw1zX1ZlcnNpb25EYXRhF0dldFNlcnZlclBha1R5cGVWZXJzaW9uCDwvY29sb3I+C3BhdGNoQmV0YVdtBG1haW4GeHBjYWxsBQEBAAAAAAEWAAEAAAAEAQEYAAUAAAAAAgAAAAAACwwAAwACBADABAFoARABAAMEAAAADAAGAAUEAMAEAQAAEAEA0AcAAAAWAAEACAMCAwMDBAQCBADAAwUDBgQFBADAAwcABwgBGAAAAAAAAQAAAAABCAAAAAAJAAAAAAA2DAEDAAIEAMAPAAF2BAAAAAUBBQAVAAICDAQIAAcYAMAPAwQUCQAAAE0sAwIMAgsAAACgQBUCAgAUAACxDAAAABUAAAIFAQ0AEAEA1Q4AAAAMAQMAAgQAwA8AAXYEAAAABQEPABUAAgIMBAgABxgAwA8DBBQJAAAATSwDAgwCCwAAAKBAFQICABQAALEMAAAAFQAAAgUCEAAFAxEADAgIAAcYAMAPBwisEgAAAA8GByMTAAAAFAYGkRQAAAAVBgICBgQGAAUFFQA1AQIFEAEA1Q4AAAAWAAEAFgMCAwMDCQQCBADAAwoDCwMMAw0EBxgAwAMOAw8EAACgQAMQAxEDEgMTAxQDFQMWAxcDGAMZAAwaARgAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAQEBAAAAAAAAAAAAAQD8AAUOAAAAAAEAAQAAAAMJAAAAFQABARYAAQAAABkbARgAAAEaAAAAAAcAAAEAAAxFAAAARAAAAEQBAQBEAgIARAMDAEoAAgAMBAUAAABAQAYFAwAGBgAAFQQDARYAAQAGBgAGAQYCBgMDHAQAAEBABAABAgMBAAEYAAMDBQ0ABAAAAAAAAQAAAAAE").unwrap(),
|
||||
..Default::default()
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user