use serenity::{ framework::standard::{ macros::command, Args, CommandResult, }, model::channel::Message, prelude::*, }; use crate::commands::songbird; pub const DEFAULT_VOLUME: f32 = 0.20; const MAX_VOLUME: f32 = 5.0; #[command] pub async fn mute(ctx: &Context, msg: &Message, _: Args) -> CommandResult { let (_sb, call) = songbird(ctx, msg).await?; let mut call = call.lock().await; call.mute(true).await?; Ok(()) } #[command] pub async fn unmute(ctx: &Context, msg: &Message, _: Args) -> CommandResult { let (_sb, call) = songbird(ctx, msg).await?; let mut call = call.lock().await; call.mute(true).await?; Ok(()) } // #[command] // pub async fn volume(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { // if args.len() == 0 { // let vol = { // let queue_lock = ctx.data.write().await.get::().cloned().unwrap(); // let play_queue = queue_lock.read().unwrap(); // (play_queue.volume / DEFAULT_VOLUME * 100.0) as usize // }; // // trace!("reporting volume {}", vol); // // return util::send(ctx, msg.channel_id, &format!("volume: {}%", vol), msg.tts) // .map_err(CommandError::from) // .await; // } // // let vol: usize = match args.single::() { // Ok(vol) if vol.is_nan() => { // warn!("reporting NaN volume"); // return util::send(ctx, msg.channel_id, "you're a fuck", msg.tts) // .map_err(CommandError::from) // .await; // }, // Ok(vol) => vol as usize, // Err(e) => { // error!("parsing volume arg: {}", e); // return util::send(ctx, msg.channel_id, "???????", msg.tts) // .map_err(CommandError::from) // .await; // }, // }; // // let mut vol: f32 = (vol as f32) / 100.0; // force aliasing to reasonable values // let adjusted_text = if vol > MAX_VOLUME { // format!(" ({:.0}% max)", MAX_VOLUME * 100.0) // } else { // "".to_owned() // }; // // vol = vol.clamp(0.0, MAX_VOLUME); // // let queue_lock = ctx.data.write().await.get::().cloned().unwrap(); // // { // let mut play_queue = queue_lock.write().unwrap(); // play_queue.volume = vol * DEFAULT_VOLUME; // info!("volume updated to {}", vol); // } // // util::send(ctx, msg.channel_id, format!("volume adjusted{}", adjusted_text), msg.tts).await?; // // Ok(()) // }