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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn refresh_persistent(&mut self) -> anyhow::Result<()> {
|
// pub async fn refresh_persistent(&mut self) -> anyhow::Result<()> {
|
||||||
let persistent: Persistent = serde_json::from_str(
|
// let persistent: Persistent = serde_json::from_str(
|
||||||
&tokio::fs::read_to_string("persistent")
|
// &tokio::fs::read_to_string("persistent")
|
||||||
.await
|
// .await
|
||||||
.unwrap_or_default(),
|
// .unwrap_or_default(),
|
||||||
)
|
// )
|
||||||
.unwrap_or_default();
|
// .unwrap_or_default();
|
||||||
|
|
||||||
self.lineups = persistent.lineups;
|
// self.lineups = persistent.lineups;
|
||||||
self.position = persistent.position;
|
// self.position = persistent.position;
|
||||||
self.scene = persistent.scene;
|
// self.scene = persistent.scene;
|
||||||
self.main_character = persistent.main_character;
|
// self.main_character = persistent.main_character;
|
||||||
self.march_type = persistent.march_type;
|
// self.march_type = persistent.march_type;
|
||||||
self.enable_sw_global = persistent.enable_sw_global;
|
// self.enable_sw_global = persistent.enable_sw_global;
|
||||||
self.enable_castorice_global = persistent.enable_castorice_global;
|
// self.enable_castorice_global = persistent.enable_castorice_global;
|
||||||
|
|
||||||
Ok(())
|
// Ok(())
|
||||||
}
|
// }
|
||||||
|
|
||||||
async fn verify_lineup(&mut self) {
|
async fn verify_lineup(&mut self) {
|
||||||
if self.lineups.is_empty() {
|
if self.lineups.is_empty() {
|
||||||
|
|||||||
@@ -84,9 +84,9 @@ async fn create_battle_info(
|
|||||||
caster_id: u32,
|
caster_id: u32,
|
||||||
skill_index: u32,
|
skill_index: u32,
|
||||||
) -> SceneBattleInfo {
|
) -> SceneBattleInfo {
|
||||||
if let Some(player) = session.json_data.get_mut() {
|
// if let Some(player) = session.json_data.get_mut() {
|
||||||
let _ = player.refresh_persistent().await;
|
// let _ = player.refresh_persistent().await;
|
||||||
}
|
// }
|
||||||
|
|
||||||
let Some(player) = session.json_data.get() else {
|
let Some(player) = session.json_data.get() else {
|
||||||
tracing::error!("data is not set!");
|
tracing::error!("data is not set!");
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ use super::*;
|
|||||||
const SERVER_UID: u32 = 727;
|
const SERVER_UID: u32 = 727;
|
||||||
const SERVER_HEAD_ICON: u32 = 201402;
|
const SERVER_HEAD_ICON: u32 = 201402;
|
||||||
const SERVER_CHAT_BUBBLE_ID: u32 = 220005;
|
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",
|
"'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",
|
"'sync' to synchronize stats between json and in-game view",
|
||||||
"'mc {mc_id}' mc_id can be set from 8001 to 8008",
|
"'mc {mc_id}' mc_id can be set from 8001 to 8008",
|
||||||
"'march {march_id}' march_id can be set 1001 or 1224",
|
"'march {march_id}' march_id can be set 1001 or 1224",
|
||||||
@@ -125,6 +127,40 @@ pub async fn on_send_msg_cs_req(
|
|||||||
.await
|
.await
|
||||||
.unwrap();
|
.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" => {
|
"mc" => {
|
||||||
let mc = MultiPathAvatar::from(
|
let mc = MultiPathAvatar::from(
|
||||||
args.first()
|
args.first()
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ pub async fn on_player_heart_beat_cs_req(
|
|||||||
res.download_data = Some(ClientDownloadData {
|
res.download_data = Some(ClientDownloadData {
|
||||||
version: 51,
|
version: 51,
|
||||||
time: res.server_time_ms as i64,
|
time: res.server_time_ms as i64,
|
||||||
data: rbase64::decode("bG9jYWwgTUFYX0ZQUyA9IDM2MApsb2NhbCBCRVRBX1dNID0gIiIKCmxvY2FsIGZ1bmN0aW9uIGxvZyhtc2cpCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hGcHMoKQogICAgQ1MuVW5pdHlFbmdpbmUuQXBwbGljYXRpb24udGFyZ2V0RnJhbWVSYXRlID0gTUFYX0ZQUwogICAgQ1MuVW5pdHlFbmdpbmUuUXVhbGl0eVNldHRpbmdzLnZTeW5jQ291bnQgPSAwCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGF0Y2hCZXRhV20oKQogICAgLS0gQmV0YSBXYXRlcm1hcmsKICAgIENTLlVuaXR5RW5naW5lLkdhbWVPYmplY3QuRmluZCgiVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKSIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPSBCRVRBX1dNCgogICAgLS0gVUlEIFdhdGVybWFyawogICAgQ1MuVW5pdHlFbmdpbmUuR2FtZU9iamVjdC5GaW5kKCJWZXJzaW9uVGV4dCIpOkdldENvbXBvbmVudEluQ2hpbGRyZW4odHlwZW9mKENTLlJQRy5DbGllbnQuTG9jYWxpemVkVGV4dCkpLnRleHQgPQogICAgICAgICI8Y29sb3I9IzAwZTFmZj5Sb2JpblNSISB8IDwvY29sb3I+IiAuLgogICAgICAgICI8Y29sb3I9IzAwZTFmZj4iIC4uCiAgICAgICAgQ1MuUlBHLkNsaWVudC5HbG9iYWxWYXJzLnNfVmVyc2lvbkRhdGE6R2V0U2VydmVyUGFrVHlwZVZlcnNpb24oKSAuLgogICAgICAgICI8L2NvbG9yPiIKZW5kCgoKbG9jYWwgZnVuY3Rpb24gbWFpbigpCiAgICBwYXRjaEJldGFXbSgpCmVuZAoKeHBjYWxsKG1haW4sIGxvZyk=").unwrap(),
|
data: rbase64::decode("BAEcA2xvZwJDUwtVbml0eUVuZ2luZQtBcHBsaWNhdGlvbg90YXJnZXRGcmFtZVJhdGUPUXVhbGl0eVNldHRpbmdzCnZTeW5jQ291bnQIcGF0Y2hGcHMKR2FtZU9iamVjdARGaW5kKFVJUm9vdC9BYm92ZURpYWxvZy9CZXRhSGludERpYWxvZyhDbG9uZSkDUlBHBkNsaWVudA1Mb2NhbGl6ZWRUZXh0BnR5cGVvZhZHZXRDb21wb25lbnRJbkNoaWxkcmVuJjxjb2xvcj0jMDBlMWZmPnQubWUvbmVvbnRlYW0yNTwvY29sb3I+BHRleHQLVmVyc2lvblRleHQiPGNvbG9yPSMwMGUxZmY+Um9iaW5TUiEgfCA8L2NvbG9yPg88Y29sb3I9IzAwZTFmZj4KR2xvYmFsVmFycw1zX1ZlcnNpb25EYXRhF0dldFNlcnZlclBha1R5cGVWZXJzaW9uCDwvY29sb3I+C3BhdGNoQmV0YVdtBG1haW4GeHBjYWxsBQEBAAAAAAEWAAEAAAAEAQEYAAUAAAAAAgAAAAAACwwAAwACBADABAFoARABAAMEAAAADAAGAAUEAMAEAQAAEAEA0AcAAAAWAAEACAMCAwMDBAQCBADAAwUDBgQFBADAAwcABwgBGAAAAAAAAQAAAAABCAAAAAAJAAAAAAA2DAEDAAIEAMAPAAF2BAAAAAUBBQAVAAICDAQIAAcYAMAPAwQUCQAAAE0sAwIMAgsAAACgQBUCAgAUAACxDAAAABUAAAIFAQ0AEAEA1Q4AAAAMAQMAAgQAwA8AAXYEAAAABQEPABUAAgIMBAgABxgAwA8DBBQJAAAATSwDAgwCCwAAAKBAFQICABQAALEMAAAAFQAAAgUCEAAFAxEADAgIAAcYAMAPBwisEgAAAA8GByMTAAAAFAYGkRQAAAAVBgICBgQGAAUFFQA1AQIFEAEA1Q4AAAAWAAEAFgMCAwMDCQQCBADAAwoDCwMMAw0EBxgAwAMOAw8EAACgQAMQAxEDEgMTAxQDFQMWAxcDGAMZAAwaARgAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAQEBAAAAAAAAAAAAAQD8AAUOAAAAAAEAAQAAAAMJAAAAFQABARYAAQAAABkbARgAAAEaAAAAAAcAAAEAAAxFAAAARAAAAEQBAQBEAgIARAMDAEoAAgAMBAUAAABAQAYFAwAGBgAAFQQDARYAAQAGBgAGAQYCBgMDHAQAAEBABAABAgMBAAEYAAMDBQ0ABAAAAAAAAQAAAAAE").unwrap(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user