summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/logic.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/server/src/logic.rs b/server/src/logic.rs
index 01b7a82..b16e605 100644
--- a/server/src/logic.rs
+++ b/server/src/logic.rs
@@ -106,10 +106,9 @@ impl State {
ServerboundPacket::Join { hash } => {
if let Some(room) = &cstate.current_room {
room.leave(self, client).await;
- // TODO dont leak room
- // if room.should_remove().await {
- // self.rooms.write().await.remove(üw);
- // }
+ if room.should_remove().await {
+ self.rooms.write().await.remove(&room.hash);
+ }
}
if let Some(hash) = hash {
let room = self
@@ -223,10 +222,8 @@ impl Room {
pub async fn leave(&self, state: &State, client: Client) {
debug!("client leave {client:?}");
for c in self.users.read().await.iter() {
- if *c != client {
- self.send_to_client(*c, ClientboundPacket::ClientLeave { id: client })
- .await;
- }
+ self.send_to_client(*c, ClientboundPacket::ClientLeave { id: client })
+ .await;
}
let user_count = {
let mut g = self.users.write().await;