diff --git a/src/vc/mod.rs b/src/vc/mod.rs index eceb945..e053044 100644 --- a/src/vc/mod.rs +++ b/src/vc/mod.rs @@ -4,7 +4,7 @@ use serenity::{async_trait, model::prelude::{ChannelId, Guild}, prelude::{Context, Mutex}}; use songbird::{EventHandler, Event, EventContext, - model::payload::{Speaking, ClientDisconnect}, ffmpeg, create_player, Call}; + model::payload::{Speaking, ClientDisconnect}, ffmpeg, create_player, Call, CoreEvent}; struct Receiver; @@ -102,6 +102,32 @@ pub async fn join(ctx: Context, guild: Guild, cid: ChannelId) -> Option { { let mut call = call.lock().await; + + call.add_global_event( + CoreEvent::SpeakingUpdate.into(), + Receiver::new(), + ); + + call.add_global_event( + CoreEvent::VoicePacket.into(), + Receiver::new(), + ); + + call.add_global_event( + CoreEvent::RtcpPacket.into(), + Receiver::new(), + ); + + call.add_global_event( + CoreEvent::ClientDisconnect.into(), + Receiver::new(), + ); + + call.add_global_event( + CoreEvent::ClientDisconnect.into(), + Receiver::new(), + ); + let ding_src = std::env::var("DING_SOUND").expect("DING not found in DING_SOUND"); let ding = ffmpeg(ding_src).await.expect("no ding.");