aboutsummaryrefslogtreecommitdiff
path: root/src/bot.rs
diff options
context:
space:
mode:
authorNathan Perry <np@nathanperry.dev>2024-08-16 23:09:41 -0400
committerNathan Perry <np@nathanperry.dev>2024-08-16 23:09:43 -0400
commit584f0ebc6e33ddc2905d82f44e7b42faea122668 (patch)
treee4a2bbc3d801086649c29a1de741dd49fc466b96 /src/bot.rs
parente0a9b18f45858829f88cbe20611aaf696fc5bf6a (diff)
fill in queued playback info
Diffstat (limited to 'src/bot.rs')
-rw-r--r--src/bot.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bot.rs b/src/bot.rs
index d9047e6..4ad22c6 100644
--- a/src/bot.rs
+++ b/src/bot.rs
@@ -69,6 +69,12 @@ impl TypeMapKey for VolumeKey {
type Value = DashMap<GuildId, f64>;
}
+pub struct PlaybackKey;
+
+impl TypeMapKey for PlaybackKey {
+ type Value = Arc<DashMap<uuid::Uuid, songbird::input::AuxMetadata>>;
+}
+
#[cfg(debug_assertions)]
const BOTNAME: &str = "thulani (dev)";
@@ -127,6 +133,7 @@ struct SongbirdHandler(Arc<Mutex<Call>>);
impl songbird::events::EventHandler for SongbirdHandler {
async fn act(&self, _ctx: &EventContext<'_>) -> Option<Event> {
let mut call = self.0.lock().await;
+
if call.queue().is_empty() {
let _ = call.leave().await;
}
@@ -416,6 +423,7 @@ pub async fn run() -> anyhow::Result<()> {
.register_songbird_from_config(sb_config)
.type_map_insert::<HttpKey>(reqwest::Client::new())
.type_map_insert::<VolumeKey>(DashMap::new())
+ .type_map_insert::<PlaybackKey>(Arc::new(DashMap::new()))
.framework(framework().await)
.await?;