use crate::protocol::*; use crate::shared::*; use bevy::prelude::*; use lightyear::client::config::*; use lightyear::client::plugin::ClientPlugin; use lightyear::client::plugin::PluginConfig; use lightyear::client::resource::Authentication; use lightyear::prelude::client::NetConfig; use lightyear::prelude::*; use lightyear::transport::LOCAL_SOCKET; pub struct NetworkPlugin { pub transport: TransportConfig, } impl Plugin for NetworkPlugin { fn build(&self, app: &mut App) { app.add_plugins(ClientPlugin::new(PluginConfig::new( ClientConfig { net: NetConfig::Netcode { config: Default::default(), auth: Authentication::Manual { server_addr: LOCAL_SOCKET, client_id: CLIENT_ID, private_key: KEY, protocol_id: PROTOCOL_ID, }, io: IoConfig::from_transport(self.transport.clone()), }, ..Default::default() }, protocol(), ))); } }