diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/main.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/server/src/main.rs b/server/src/main.rs index 03ebb82..fc8583b 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -68,13 +68,21 @@ impl State { prefab_index: PrefabIndex::default(), }) } + pub fn prime_client(&self, conn: u128, net: &ServerNetwork) -> Result<()> { + net.broadcast( + Packet::PrefabIndex(self.store.set(&self.prefab_index)?), + true, + ); + for p in self.tree.prime_client() { + net.send(conn, p, true); + } + Ok(()) + } pub fn handle_packet(&mut self, conn: u128, packet: Packet, net: &ServerNetwork) -> Result<()> { self.tree.packet(&packet); match packet { Packet::Connect(_) => { - for p in self.tree.prime_client() { - net.send(conn, p, true); - } + self.prime_client(conn, net)?; } Packet::Disconnect => {} Packet::RequestResource(resource) => { |