fix: chat history & chat send

This commit is contained in:
amizing25
2026-01-07 17:20:21 +07:00
parent c2b3bb4dd9
commit 7807973f93
+78 -33
View File
@@ -1,5 +1,5 @@
use common::structs::MultiPathAvatar; use common::structs::MultiPathAvatar;
use proto::chat_message_extend_data::ExtendType; use proto::{chat_message_extend_data::ExtendType, dabbfcoafjg::Eedaadmacap};
use crate::{net::PlayerSession, util::cur_timestamp_ms}; use crate::{net::PlayerSession, util::cur_timestamp_ms};
@@ -66,7 +66,8 @@ pub async fn on_get_private_chat_history_cs_req(
extend_type: Some(ExtendType::MessageText(String::from(*text))), extend_type: Some(ExtendType::MessageText(String::from(*text))),
}), }),
bofjjhikijl: Some(Dabbfcoafjg { bofjjhikijl: Some(Dabbfcoafjg {
..Default::default() eedaadmacap: Some(Eedaadmacap::Uid(SERVER_UID)),
kcpbmeabmph: 0,
}), }),
dgmnkagbcem: Some(Gpcnkeaofea { dgmnkagbcem: Some(Gpcnkeaofea {
chat_message_extend_data: Some(ChatMessageExtendData { chat_message_extend_data: Some(ChatMessageExtendData {
@@ -91,21 +92,30 @@ pub async fn on_send_msg_cs_req(
return; return;
}; };
if let Some((cmd, args)) = parse_command(&body.message_text) { let msg = body
.dgmnkagbcem
.as_ref()
.and_then(|x| x.chat_message_extend_data.as_ref())
.and_then(|x| x.extend_type.as_ref())
.and_then(|x| match x {
ExtendType::MessageText(s) => Some(s.as_str()),
_ => None,
})
.unwrap_or("");
if let Some((cmd, args)) = parse_command(msg) {
match cmd { match cmd {
"sync" => { "sync" => {
session.sync_player().await; session.sync_player().await;
session session
.send(RevcMsgScNotify { .send(create_send_message(
message_type: body.message_type, 25,
message_text: String::from("Inventory Synced"), SERVER_UID,
source_uid: SERVER_UID, body.message_type,
target_uid: 25, body.chat_type,
chat_type: body.chat_type, body.chat_message_extend_data.clone(),
chat_message_extend_data: body.chat_message_extend_data.clone(), String::from("Inventory Synced"),
mjaocldhphm: 0, ))
pfjjlomkbfa: None,
})
.await .await
.unwrap(); .unwrap();
} }
@@ -131,16 +141,14 @@ pub async fn on_send_msg_cs_req(
session.sync_player().await; session.sync_player().await;
session session
.send(RevcMsgScNotify { .send(create_send_message(
message_type: body.message_type, 25,
message_text: format!("Success change mc to {mc:#?}"), SERVER_UID,
source_uid: SERVER_UID, body.message_type,
target_uid: 25, body.chat_type,
chat_type: body.chat_type, body.chat_message_extend_data.clone(),
chat_message_extend_data: body.chat_message_extend_data.clone(), format!("Success change mc to {mc:#?}"),
mjaocldhphm: 0, ))
pfjjlomkbfa: None,
})
.await .await
.unwrap(); .unwrap();
} }
@@ -170,16 +178,14 @@ pub async fn on_send_msg_cs_req(
.unwrap(); .unwrap();
session session
.send(RevcMsgScNotify { .send(create_send_message(
message_type: body.message_type, 25,
message_text: format!("Success change march to {march_type:#?}"), SERVER_UID,
source_uid: SERVER_UID, body.message_type,
target_uid: 25, body.chat_type,
chat_type: body.chat_type, body.chat_message_extend_data.clone(),
chat_message_extend_data: body.chat_message_extend_data.clone(), format!("Success change march to {march_type:#?}"),
mjaocldhphm: 0, ))
pfjjlomkbfa: None,
})
.await .await
.unwrap(); .unwrap();
} }
@@ -197,3 +203,42 @@ fn parse_command(command: &str) -> Option<(&str, Vec<&str>)> {
Some((parts[0], parts[1..].to_vec())) Some((parts[0], parts[1..].to_vec()))
} }
fn create_send_message(
to: u32,
from: u32,
message_type: i32,
chat_type: i32,
extend_data: Option<ChatMessageExtendData>,
msg: String,
) -> RevcMsgScNotify {
RevcMsgScNotify {
message_type,
message_text: msg.clone(),
source_uid: from,
target_uid: to,
chat_type,
chat_message_extend_data: extend_data,
mjaocldhphm: 0,
revc_message_data: Some(ChatMessageData {
message_type: MsgType::CustomText.into(),
create_time: cur_timestamp_ms(),
content: msg.clone(),
sender_id: SERVER_UID,
chat_message_extend_data: Some(ChatMessageExtendData {
extend_type: Some(ExtendType::MessageText(msg.clone())),
}),
bofjjhikijl: Some(Dabbfcoafjg {
eedaadmacap: Some(Eedaadmacap::Uid(SERVER_UID)),
kcpbmeabmph: 0,
}),
dgmnkagbcem: Some(Gpcnkeaofea {
chat_message_extend_data: Some(ChatMessageExtendData {
extend_type: Some(ExtendType::MessageText(msg.clone())),
}),
message_type: MsgType::CustomText.into(),
}),
..Default::default()
}),
}
}