2018-11-14 14:29:58 +00:00
|
|
|
use serenity;
|
|
|
|
|
|
|
|
use std::ops::DerefMut;
|
|
|
|
use std::sync::Arc;
|
|
|
|
|
|
|
|
use super::super::prelude::*;
|
|
|
|
|
|
|
|
pub struct Pause {
|
|
|
|
media: Arc<MediaData>,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Pause {
|
|
|
|
pub fn new(media_data: Arc<MediaData>) -> Pause {
|
|
|
|
Pause { media: media_data }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl serenity::framework::standard::Command for Pause {
|
|
|
|
#[allow(unreachable_code, unused_mut)]
|
|
|
|
fn execute(
|
|
|
|
&self,
|
2018-11-23 12:18:07 +00:00
|
|
|
ctx: &mut serenity::client::Context,
|
|
|
|
msg: &serenity::model::channel::Message,
|
2018-11-14 14:29:58 +00:00
|
|
|
_: serenity::framework::standard::Args,
|
|
|
|
) -> ::std::result::Result<(), serenity::framework::standard::CommandError> {
|
2018-11-23 12:18:07 +00:00
|
|
|
if !channel_contains_author(ctx, msg) {
|
|
|
|
println!(
|
|
|
|
"user {} is not in the same voice channel as the bot",
|
|
|
|
msg.author.name
|
|
|
|
);
|
|
|
|
return Ok(());
|
|
|
|
}
|
|
|
|
|
2018-11-14 14:29:58 +00:00
|
|
|
let song_lock = self.media.song_mut();
|
|
|
|
|
|
|
|
if let Some(song) = song_lock.borrow_mut().deref_mut() {
|
|
|
|
let song_clone = song.clone();
|
|
|
|
let mut audio_lock = song_clone.lock();
|
|
|
|
|
|
|
|
audio_lock.pause();
|
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
}
|