From 74ffa47147d2bb989057b4513075975c44c2bc42 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 1 Mar 2026 21:55:16 +0100 Subject: add serverdata packet with data fields that dont change across games; add motd and server name --- server/registry/src/lobby.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'server/registry/src') diff --git a/server/registry/src/lobby.rs b/server/registry/src/lobby.rs index acbb69bd..eb6ae1f0 100644 --- a/server/registry/src/lobby.rs +++ b/server/registry/src/lobby.rs @@ -1,7 +1,7 @@ use crate::Registry; use anyhow::Result; use hurrycurry_protocol::{ - Gamedata, PacketC, PacketS, PlayerClass, PlayerID, TileIndex, VERSION, + Gamedata, PacketC, PacketS, PlayerClass, PlayerID, Serverdata, TileIndex, VERSION, glam::{IVec2, Vec2, ivec2, vec2}, movement::MovementBase, registry::Entry, @@ -23,7 +23,9 @@ use tokio::{ use tokio_tungstenite::tungstenite::Message; pub(crate) async fn lobby_wrapper(registry: Arc>, saddr: SocketAddr) { - let Err(e) = lobby(registry, saddr).await else { unreachable!() }; + let Err(e) = lobby(registry, saddr).await else { + unreachable!() + }; error!("lobby crashed: {e}"); } @@ -73,7 +75,15 @@ async fn handle_conn(sock: TcpStream, addr: SocketAddr, entries: &[Entry]) -> Re minor: VERSION.1, supports_bincode: false, }); - out.push(PacketC::Data { + out.push(PacketC::ServerData { + data: Box::new(Serverdata { + bot_algos: vec![], + maps: vec![], + motd: None, + name: "Registry".to_string(), + }), + }); + out.push(PacketC::GameData { data: Box::new(Gamedata { tile_collide: (0..TILES.len()).map(TileIndex).collect(), tile_placeable_items: BTreeMap::new(), -- cgit v1.3