Enable basic voice handler events

This commit is contained in:
2023-03-12 12:46:49 -04:00
parent ec115960d9
commit f6020bb859

View File

@@ -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<Arc<Mute
Ok(_) => {
{
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.");