From 3d0b53349dbcb5b8e4a3ec7cef23e741eb55aab7 Mon Sep 17 00:00:00 2001 From: yukirij Date: Fri, 16 Aug 2024 17:27:29 -0700 Subject: [PATCH] Fix remove connection on leave. --- server/src/manager/data.rs | 4 ++-- www/js/interface.js | 4 ++++ www/js/scene.js | 3 --- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/server/src/manager/data.rs b/server/src/manager/data.rs index 4b348eb..56f10e0 100644 --- a/server/src/manager/data.rs +++ b/server/src/manager/data.rs @@ -492,8 +492,8 @@ pub async fn thread_system(mut app:App, bus:Bus) // Verify that session exists. if let Some(session_token) = session_id { if let Some(session) = app.sessions.get_mut(&session_token) { - if user_id == session.p_dawn.user { session.remove_connection(0, qr.id); } - else if user_id == session.p_dusk.user { session.remove_connection(1, qr.id); } + if user_id.is_some() && user_id == session.p_dawn.user { session.remove_connection(0, qr.id); } + else if user_id.is_some() && user_id == session.p_dusk.user { session.remove_connection(1, qr.id); } else { session.remove_connection(2, qr.id); } } } diff --git a/www/js/interface.js b/www/js/interface.js index dfa6f18..3dfb1e0 100644 --- a/www/js/interface.js +++ b/www/js/interface.js @@ -704,6 +704,10 @@ const INTERFACE = { }, uninit() { + MESSAGE_COMPOSE([ + PACK.u16(OpCode.SessionLeave), + ]); + if(INTERFACE_DATA !== null) { MAIN.removeChild(INTERFACE_DATA.canvas); INTERFACE_DATA = null; diff --git a/www/js/scene.js b/www/js/scene.js index a1e6807..19acb7e 100644 --- a/www/js/scene.js +++ b/www/js/scene.js @@ -493,9 +493,6 @@ const SCENES = { return true; }, unload() { - MESSAGE_COMPOSE([ - PACK.u16(OpCode.SessionLeave), - ]); INTERFACE.uninit(); }, message(code, data) {