mirror of
https://github.com/lcdr/lu_packets.git
synced 2026-05-25 03:20:14 -05:00
Make raknet messages generic
This commit is contained in:
+1
-1
@@ -6,7 +6,7 @@ use endio::LittleEndian as LE;
|
||||
use crate::common::{LuStr33, LuWStr33, ServiceId};
|
||||
use crate::general::client::{GeneralMessage, Handshake};
|
||||
|
||||
rak_client_msg!(LuMessage);
|
||||
pub type Message = crate::raknet::client::Message<LuMessage>;
|
||||
|
||||
impl From<GeneralMessage> for Message {
|
||||
fn from(msg: GeneralMessage) -> Self {
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ use endio::LittleEndian as LE;
|
||||
use crate::common::{err, LuWStr33, LuWStr41, LuWStr128, LuWStr256, ServiceId};
|
||||
pub use crate::general::server::GeneralMessage;
|
||||
|
||||
rak_server_msg!(LuMessage);
|
||||
pub type Message = crate::raknet::server::Message<LuMessage>;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
#[non_exhaustive]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#![feature(arbitrary_enum_discriminant)]
|
||||
#[macro_use]
|
||||
pub mod raknet;
|
||||
pub mod auth;
|
||||
pub mod chat;
|
||||
|
||||
+8
-13
@@ -4,32 +4,27 @@ use std::net::Ipv4Addr;
|
||||
use endio::{LEWrite, Serialize};
|
||||
use endio::LittleEndian as LE;
|
||||
|
||||
// todo[chalk]: generic type instead of macro
|
||||
macro_rules! rak_client_msg {
|
||||
($T:ty) => {
|
||||
#[derive(Debug, Serialize)]
|
||||
#[non_exhaustive]
|
||||
#[repr(u8)]
|
||||
pub enum Message {
|
||||
ConnectedPong($crate::raknet::client::ConnectedPong) = 3,
|
||||
ConnectionRequestAccepted($crate::raknet::client::ConnectionRequestAccepted) = 14,
|
||||
pub enum Message<U> {
|
||||
ConnectedPong(ConnectedPong) = 3,
|
||||
ConnectionRequestAccepted(ConnectionRequestAccepted) = 14,
|
||||
DisconnectionNotification = 19,
|
||||
UserMessage($T) = 83,
|
||||
UserMessage(U) = 83,
|
||||
}
|
||||
|
||||
impl From<$crate::raknet::client::ConnectedPong> for Message {
|
||||
fn from(msg: $crate::raknet::client::ConnectedPong) -> Self {
|
||||
impl<U> From<ConnectedPong> for Message<U> {
|
||||
fn from(msg: ConnectedPong) -> Self {
|
||||
Message::ConnectedPong(msg)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<$crate::raknet::client::ConnectionRequestAccepted> for Message {
|
||||
fn from(msg: $crate::raknet::client::ConnectionRequestAccepted) -> Self {
|
||||
impl<U> From<ConnectionRequestAccepted> for Message<U> {
|
||||
fn from(msg: ConnectionRequestAccepted) -> Self {
|
||||
Message::ConnectionRequestAccepted(msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
pub struct ConnectedPong {
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
#[macro_use]
|
||||
pub mod client;
|
||||
#[macro_use]
|
||||
pub mod server;
|
||||
|
||||
+5
-10
@@ -7,20 +7,15 @@ use endio::LittleEndian as LE;
|
||||
|
||||
use crate::common::SystemAddress;
|
||||
|
||||
// todo[chalk]: generic type instead of macro
|
||||
macro_rules! rak_server_msg {
|
||||
($T:ty) => {
|
||||
#[derive(Debug, Deserialize)]
|
||||
#[non_exhaustive]
|
||||
#[repr(u8)]
|
||||
pub enum Message {
|
||||
InternalPing($crate::raknet::server::InternalPing) = 0,
|
||||
ConnectionRequest($crate::raknet::server::ConnectionRequest) = 4,
|
||||
NewIncomingConnection($crate::raknet::server::NewIncomingConnection) = 17,
|
||||
pub enum Message<U> {
|
||||
InternalPing(InternalPing) = 0,
|
||||
ConnectionRequest(ConnectionRequest) = 4,
|
||||
NewIncomingConnection(NewIncomingConnection) = 17,
|
||||
DisconnectionNotification = 19,
|
||||
UserMessage($T) = 83,
|
||||
}
|
||||
}
|
||||
UserMessage(U) = 83,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ use endio::LittleEndian as LE;
|
||||
use crate::common::{ObjId, LuWStr33, ServiceId, ZoneId};
|
||||
use crate::general::client::{DisconnectNotify, GeneralMessage, Handshake};
|
||||
|
||||
rak_client_msg!(LuMessage);
|
||||
pub type Message = crate::raknet::client::Message<LuMessage>;
|
||||
|
||||
impl From<GeneralMessage> for Message {
|
||||
fn from(msg: GeneralMessage) -> Self {
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ use crate::common::{err, ObjId, LuWStr33, LuWStr42, LuStr33, ServiceId, ZoneId};
|
||||
use crate::chat::server::ChatMessage;
|
||||
pub use crate::general::server::GeneralMessage;
|
||||
|
||||
rak_server_msg!(LuMessage);
|
||||
pub type Message = crate::raknet::server::Message<LuMessage>;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
#[non_exhaustive]
|
||||
@@ -152,7 +152,7 @@ impl<R: LERead> Deserialize<LE, R> for CharacterCreateRequest
|
||||
let eyebrow_style = reader.read()?;
|
||||
let eye_style = reader.read()?;
|
||||
let mouth_style = reader.read()?;
|
||||
let _unused: u8 = reader.read()?;
|
||||
let _unused: u8 = reader.read()?;
|
||||
|
||||
Ok(Self {
|
||||
char_name,
|
||||
|
||||
Reference in New Issue
Block a user