summaryrefslogtreecommitdiff
path: root/shared
diff options
context:
space:
mode:
Diffstat (limited to 'shared')
-rw-r--r--shared/src/packets.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/shared/src/packets.rs b/shared/src/packets.rs
index 1c457d3..a5c017d 100644
--- a/shared/src/packets.rs
+++ b/shared/src/packets.rs
@@ -47,6 +47,8 @@ pub struct Object(pub u128);
#[derive(Clone)]
pub struct Data(pub Vec<u8>);
+#[derive(Debug, Clone)]
+pub struct Message(pub String);
#[derive(Debug, Clone)]
pub enum Packet {
@@ -62,6 +64,7 @@ pub enum Packet {
Sound(Object, Data),
PrefabIndex(Resource<PrefabIndex>),
AnnouncePrefab(Resource<Prefab>),
+ Chat(Object, Message),
}
impl Object {
@@ -126,6 +129,11 @@ impl Packet {
w.write_all(&[0x0a])?;
resource.write(w)?;
}
+ Packet::Chat(object, message) => {
+ w.write_all(&[0x0b])?;
+ object.write(w)?;
+ message.write(w)?;
+ }
}
Ok(())
}
@@ -156,6 +164,7 @@ impl ReadWrite for Packet {
0x08 => Packet::Sound(Object::read(r)?, Data::read(r)?),
0x09 => Packet::PrefabIndex(Resource::read(r)?),
0x0a => Packet::AnnouncePrefab(Resource::read(r)?),
+ 0x0b => Packet::Chat(Object::read(r)?, Message::read(r)?),
_ => {
for _ in 0..packet_len.max(1) - 1 {
r.read_exact(&mut [0])?;