diff --git a/rc_multiplayer/src/handler.rs b/rc_multiplayer/src/handler.rs index 88ec31d..a5fdb18 100644 --- a/rc_multiplayer/src/handler.rs +++ b/rc_multiplayer/src/handler.rs @@ -17,7 +17,7 @@ impl literustlib_server::EventHandler for LnlEventHandler { type PacketData = super::PacketData; type UserData = super::UserData; - async fn on_receive(&self, data: Self::PacketData, _header: &literustlib::packet::Header, peer: &mut literustlib_server::Connection, user: &Self::UserData, sender: &literustlib_server::DataSender) { + async fn on_receive(&self, data: Self::PacketData, _header: &literustlib::packet::Header, peer: &std::sync::Arc< literustlib_server::Connection>, user: &Self::UserData, sender: &literustlib_server::DataSender) { log::debug!("Got event {:?} (len: {}) from connection id {}", data.variant, data.data.len(), peer.id()); if let Some(handler) = self.event_handlers.get(&(data.variant as u16)) { handler.handle(&data.data, peer, user, sender).await; @@ -33,7 +33,7 @@ impl literustlib_server::EventHandler for LnlEventHandler { } } - async fn on_connect_start(&self, addr: &core::net::SocketAddr, key: String, peer: &mut literustlib_server::Connection) -> Option { + async fn on_connect_start(&self, addr: &core::net::SocketAddr, key: String, peer: &std::sync::Arc< literustlib_server::Connection>) -> Option { log::debug!("New connection started from {}!!! (key:{}, id:{})", addr, key, peer.id()); //let mut buf = Vec::new(); //literustlib::packet::Packet::with_data(literustlib::packet::Property::Reliable, &[9, 0, 0, 0, 0, 0]).dump(&mut buf).unwrap_or_default(); @@ -41,7 +41,7 @@ impl literustlib_server::EventHandler for LnlEventHandler { Some(()) } - async fn on_connect_done(&self, peer: &mut literustlib_server::Connection, _user: &Self::UserData, sender: &literustlib_server::DataSender) { + async fn on_connect_done(&self, peer: &std::sync::Arc< literustlib_server::Connection>, _user: &Self::UserData, sender: &literustlib_server::DataSender) { log::debug!("New connection completed (id:{})", peer.id()); //let mut buf = Vec::new(); //literustlib::packet::Packet::with_data(literustlib::packet::Property::Reliable, &[9, 0, 0, 0, 0, 0]).dump(&mut buf).unwrap_or_default(); diff --git a/rc_multiplayer/src/main.rs b/rc_multiplayer/src/main.rs index 1bc0e0f..1241c60 100644 --- a/rc_multiplayer/src/main.rs +++ b/rc_multiplayer/src/main.rs @@ -26,7 +26,8 @@ async fn main() -> std::io::Result<()> { parsers, }; + let mtu = oj_rc_core::ConfigProvider::<()>::network_config(&init_ctx.config).max_packet_size; let event_handler = handler::LnlEventHandler::new(&init_ctx).await; - let server = literustlib_server::Server::new(event_handler, (args.ip, args.port), 4223).await.expect("Bad server"); + let server = literustlib_server::Server::new(event_handler, (args.ip, args.port), mtu).await.expect("Bad server"); server.listen().await } diff --git a/rc_multiplayer/src/traits.rs b/rc_multiplayer/src/traits.rs index 43096d6..9f975c2 100644 --- a/rc_multiplayer/src/traits.rs +++ b/rc_multiplayer/src/traits.rs @@ -3,5 +3,5 @@ pub type PacketData = crate::handler::EventData; #[async_trait::async_trait] pub trait EventCodeHandler: Send + Sync { - async fn handle(&self, data: &bytes::Bytes, peer: &mut literustlib_server::Connection, user: &UserData, sender: &literustlib_server::DataSender); + async fn handle(&self, data: &bytes::Bytes, peer: &std::sync::Arc>, user: &UserData, sender: &literustlib_server::DataSender); }