From 05f290e8f8954bbd975185af3660493b409aed2b Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 01:35:09 +0100 Subject: events: track voice channel moves --- src/events/mod.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/events/mod.rs b/src/events/mod.rs index 79ebb0f..fccb5ac 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -245,6 +245,22 @@ pub async fn handle_voice_state_update( tts_text = Some(lang::fmt_ev_left(&display_name)); tts_channel = Some(ocid); } + // ── CHANNEL MOVE ── + else if let (Some(old_cid), Some(new_cid)) = (old_channel, new_channel) + && old_cid != new_cid + { + va.channel_name = guild_id + .and_then(|gid| ctx.cache.guild(gid)) + .and_then(|g| g.channels.get(&new_cid).map(|c| c.name.clone())) + .unwrap_or_default(); + if va.join_time > 0.0 { + database::upsert_voice_activity(&data.db_pool, &va).await?; + } + info!( + "User {user_id} moved voice channel: {old_cid} -> {new_cid} ({})", + va.channel_name + ); + } // ── AFK STATE CHANGE (only for tracked users already in channel) ── else if new_channel.is_some() && va.join_time > 0.0 { let is_afk = new.self_mute || new.self_deaf; -- cgit v1.2.3