aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-04 01:35:09 +0100
committersalmonik <salmonik@tuta.io>2026-11-04 01:35:09 +0100
commit05f290e8f8954bbd975185af3660493b409aed2b (patch)
treefd56aa65a4bea5e62dcffa9e5100c5b669e8a8eb
parenttts: initialize piper exactly once (diff)
downloadsenator-sperma-05f290e8f8954bbd975185af3660493b409aed2b.tar.gz
senator-sperma-05f290e8f8954bbd975185af3660493b409aed2b.zip
events: track voice channel moves
-rw-r--r--src/events/mod.rs16
1 files changed, 16 insertions, 0 deletions
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(
245 tts_text = Some(lang::fmt_ev_left(&display_name)); 245 tts_text = Some(lang::fmt_ev_left(&display_name));
246 tts_channel = Some(ocid); 246 tts_channel = Some(ocid);
247 } 247 }
248 // ── CHANNEL MOVE ──
249 else if let (Some(old_cid), Some(new_cid)) = (old_channel, new_channel)
250 && old_cid != new_cid
251 {
252 va.channel_name = guild_id
253 .and_then(|gid| ctx.cache.guild(gid))
254 .and_then(|g| g.channels.get(&new_cid).map(|c| c.name.clone()))
255 .unwrap_or_default();
256 if va.join_time > 0.0 {
257 database::upsert_voice_activity(&data.db_pool, &va).await?;
258 }
259 info!(
260 "User {user_id} moved voice channel: {old_cid} -> {new_cid} ({})",
261 va.channel_name
262 );
263 }
248 // ── AFK STATE CHANGE (only for tracked users already in channel) ── 264 // ── AFK STATE CHANGE (only for tracked users already in channel) ──
249 else if new_channel.is_some() && va.join_time > 0.0 { 265 else if new_channel.is_some() && va.join_time > 0.0 {
250 let is_afk = new.self_mute || new.self_deaf; 266 let is_afk = new.self_mute || new.self_deaf;