diff --git a/src/raknet/client.rs b/src/raknet/client.rs index 8a84664..4cb13e1 100644 --- a/src/raknet/client.rs +++ b/src/raknet/client.rs @@ -7,6 +7,7 @@ use endio::LittleEndian as LE; pub enum MessageId { ConnectedPong = 3, ConnectionRequestAccepted = 14, + DisconnectionNotification = 19, UserMessage = 83, } @@ -18,6 +19,7 @@ macro_rules! rak_client_msg { pub enum Message { ConnectedPong($crate::raknet::client::ConnectedPong), ConnectionRequestAccepted($crate::raknet::client::ConnectionRequestAccepted), + DisconnectionNotification, UserMessage($T), } @@ -36,6 +38,9 @@ impl endio::Serialize for &Message writer.write($crate::raknet::client::MessageId::ConnectionRequestAccepted as u8)?; writer.write(msg)?; } + Message::DisconnectionNotification => { + writer.write($crate::raknet::client::MessageId::DisconnectionNotification as u8)?; + } Message::UserMessage(msg) => { writer.write($crate::raknet::client::MessageId::UserMessage as u8)?; writer.write(msg)?; diff --git a/src/raknet/server.rs b/src/raknet/server.rs index 91be06a..88c66de 100644 --- a/src/raknet/server.rs +++ b/src/raknet/server.rs @@ -11,6 +11,7 @@ pub enum MessageId { InternalPing = 0, ConnectionRequest = 4, NewIncomingConnection = 17, + DisconnectionNotification = 19, UserMessage = 83, } @@ -23,6 +24,7 @@ pub enum Message { InternalPing($crate::raknet::server::InternalPing), ConnectionRequest($crate::raknet::server::ConnectionRequest), NewIncomingConnection($crate::raknet::server::NewIncomingConnection), + DisconnectionNotification, UserMessage($T), } @@ -40,6 +42,8 @@ impl endio::Deserialize for Message Self::ConnectionRequest(LERead::read(reader)?) } else if message_id == $crate::raknet::server::MessageId::NewIncomingConnection as u8 { Self::NewIncomingConnection(LERead::read(reader)?) + } else if message_id == $crate::raknet::server::MessageId::DisconnectionNotification as u8 { + Self::DisconnectionNotification } else if message_id == $crate::raknet::server::MessageId::UserMessage as u8 { Self::UserMessage(LERead::read(reader)?) } else {