use serenity; use std::ops::DerefMut; use std::sync::Arc; use super::super::prelude::*; pub struct Pause { media: Arc, } impl Pause { pub fn new(media_data: Arc) -> Pause { Pause { media: media_data } } } impl serenity::framework::standard::Command for Pause { #[allow(unreachable_code, unused_mut)] fn execute( &self, ctx: &mut serenity::client::Context, msg: &serenity::model::channel::Message, _: serenity::framework::standard::Args, ) -> ::std::result::Result<(), serenity::framework::standard::CommandError> { if !channel_contains_author(ctx, msg) { println!( "user {} is not in the same voice channel as the bot", msg.author.name ); return Ok(()); } 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(()) } }