From 2a38c282dd57c2051a568549d62c80d6036e8920 Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Sun, 17 Nov 2019 21:31:28 -0500 Subject: most restructuring done --- src/audio/play_queue.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/audio/play_queue.rs') diff --git a/src/audio/play_queue.rs b/src/audio/play_queue.rs index aa2ccc5..1f80961 100644 --- a/src/audio/play_queue.rs +++ b/src/audio/play_queue.rs @@ -9,6 +9,7 @@ use std::{ use either::{Left, Right}; use serenity::{ + CacheAndHttp, client::bridge::voice::ClientVoiceManager, prelude::*, voice, @@ -22,7 +23,6 @@ use crate::{ ytdl_url, }, commands::{ - send, sound_levels::DEFAULT_VOLUME, }, must_env_lookup, @@ -63,23 +63,28 @@ impl PlayQueue { pub fn register(c: &mut Client) { let voice_manager = Arc::clone(&c.voice_manager); - let mut data = c.data.lock(); let queue = Arc::new(RwLock::new(PlayQueue::new())); - data.insert::(Arc::clone(&queue)); + { + let mut data = c.data.write(); + data.insert::(Arc::clone(&queue)); + } + + let cache_http = c.cache_and_http.clone(); thread::spawn(move || { loop { - if let Err(e) = Self::update(&queue, &voice_manager) { + if let Err(e) = Self::update(cache_http, &queue, &voice_manager) { error!("updating playqueue: {}", e); } thread::sleep(Duration::from_millis(250)); } }); + } - fn update(queue_lck: &Arc>, voice_manager: &Arc>) -> Result<()> { + fn update(cache_http: Arc, queue_lck: &Arc>, voice_manager: &Arc>) -> Result<()> { let (queue_is_empty, queue_has_playing) = { let queue = queue_lck.read().unwrap(); @@ -236,7 +241,7 @@ impl PlayQueue { }, None => { error!("couldn't join channel"); - send(item.sender_channel, "something happened somewhere somehow.", false)?; + item.sender_channel.say(cache_http.http, "something happened somewhere somehow.")?; } } -- cgit v1.3.1