Add client-sent mail messages

This commit is contained in:
lcdr
2020-11-22 19:07:04 +01:00
parent 688abf4dfa
commit b3e546505c
18 changed files with 86 additions and 2 deletions
-1
View File
@@ -47,7 +47,6 @@ fn parse(path: &Path) -> Res<usize> {
packet_count += 1
} else if file.name().contains("[53-04-")
&& !file.name().contains("[53-04-00-16]")
&& !file.name().contains("[53-04-00-17]")
&& !file.name().contains("[30-00]")
&& !file.name().contains("[e6-00]")
&& !file.name().contains("[6b-03]")
+3
View File
@@ -107,8 +107,11 @@ macro_rules! lu_wstr {
}
lu_str!(LuString33, 33);
lu_wstr!(LuWString32, 32);
lu_wstr!(LuWString33, 33);
lu_wstr!(LuWString41, 41);
lu_wstr!(LuWString42, 42);
lu_wstr!(LuWString50, 50);
lu_wstr!(LuWString128, 128);
lu_wstr!(LuWString256, 256);
lu_wstr!(LuWString400, 400);
+47
View File
@@ -0,0 +1,47 @@
use endio::{Deserialize, Serialize};
use lu_packets_derive::VariantTests;
use crate::common::{LuWString32, LuWString400, LuWString50, ObjId};
#[derive(Debug, Deserialize, PartialEq, Serialize, VariantTests)]
#[repr(u32)]
pub enum Mail {
CreateRequest(CreateRequest) = 0,
ListRequest = 3,
ContentCollectRequest(ContentCollectRequest) = 5,
DeleteRequest(DeleteRequest) = 7,
MarkAsReadRequest(MarkAsReadRequest) = 9,
UnreadCountRequest = 11,
}
#[derive(Debug, Deserialize, PartialEq, Serialize)]
#[trailing_padding=4]
pub struct CreateRequest {
subject: LuWString50,
body: LuWString400,
receiver_name: LuWString32,
#[padding=8] // money: i64, unused
attachment_id: ObjId,
attachment_count: u16,
locale_id: u16,
}
#[derive(Debug, Deserialize, PartialEq, Serialize)]
pub struct ContentCollectRequest {
#[padding=4]
mail_id: ObjId,
receiver_id: ObjId,
}
#[derive(Debug, Deserialize, PartialEq, Serialize)]
pub struct DeleteRequest {
#[padding=4]
mail_id: ObjId,
receiver_id: ObjId,
}
#[derive(Debug, Deserialize, PartialEq, Serialize)]
pub struct MarkAsReadRequest {
#[padding=4]
mail_id: ObjId,
}
@@ -0,0 +1,6 @@
Mail::ContentCollectRequest(
ContentCollectRequest {
mail_id: 1152921510806218479,
receiver_id: 1152921507004579166,
},
)
Binary file not shown.
@@ -0,0 +1,10 @@
Mail::CreateRequest(
CreateRequest {
subject: lu!("blue"),
body: lu!(""),
receiver_name: lu!("gruntmonkey"),
attachment_id: 1152921510718681142,
attachment_count: 100,
locale_id: 1033,
},
)
Binary file not shown.
@@ -0,0 +1,6 @@
Mail::DeleteRequest(
DeleteRequest {
mail_id: 1152921510806218479,
receiver_id: 1152921507004579166,
},
)
Binary file not shown.
@@ -0,0 +1 @@
Mail::ListRequest
Binary file not shown.
@@ -0,0 +1,5 @@
Mail::MarkAsReadRequest(
MarkAsReadRequest {
mail_id: 1152921510809321891,
},
)
Binary file not shown.
@@ -0,0 +1 @@
Mail::UnreadCountRequest
+4 -1
View File
@@ -1,4 +1,6 @@
//! Server-received world messages.
pub mod mail;
use std::io::{Read, Write};
use std::io::Result as Res;
@@ -11,6 +13,7 @@ use crate::chat::ChatChannel;
use crate::chat::server::ChatMessage;
use super::ZoneId;
use super::gm::server::SubjectGameMessage;
use self::mail::Mail;
pub use crate::general::server::GeneralMessage;
@@ -39,6 +42,7 @@ pub enum WorldMessage {
GeneralChatMessage(GeneralChatMessage) = 14,
LevelLoadComplete(LevelLoadComplete) = 19,
RouteMessage(RouteMessage) = 21,
Mail(Mail) = 23,
StringCheck(StringCheck) = 25,
RequestFreeTrialRefresh = 32,
UgcDownloadFailed(UgcDownloadFailed) = 120,
@@ -220,7 +224,6 @@ impl<'a, W: Write+LEWrite> Serialize<LE, W> for &'a GeneralChatMessage {
}
}
/**
Reports to the server that client-side loading has finished.
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
WorldMessage::Mail(
Mail::ListRequest,
)