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}, model::prelude::{ChannelId, Guild},
prelude::{Context, Mutex}}; prelude::{Context, Mutex}};
use songbird::{EventHandler, Event, EventContext, use songbird::{EventHandler, Event, EventContext,
model::payload::{Speaking, ClientDisconnect}, ffmpeg, create_player, Call}; model::payload::{Speaking, ClientDisconnect}, ffmpeg, create_player, Call, CoreEvent};
struct Receiver; struct Receiver;
@@ -102,6 +102,32 @@ pub async fn join(ctx: Context, guild: Guild, cid: ChannelId) -> Option<Arc<Mute
Ok(_) => { Ok(_) => {
{ {
let mut call = call.lock().await; 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 = let ding_src =
std::env::var("DING_SOUND").expect("DING not found in DING_SOUND"); std::env::var("DING_SOUND").expect("DING not found in DING_SOUND");
let ding = ffmpeg(ding_src).await.expect("no ding."); let ding = ffmpeg(ding_src).await.expect("no ding.");