summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/commands.rs42
-rw-r--r--src/main.rs2
2 files changed, 32 insertions, 12 deletions
diff --git a/src/commands.rs b/src/commands.rs
index 7023ebd..5671f44 100644
--- a/src/commands.rs
+++ b/src/commands.rs
@@ -8,6 +8,7 @@ use serenity::client::bridge::voice::ClientVoiceManager;
use serenity::framework::StandardFramework;
use serenity::model::id::ChannelId;
use serenity::voice::{LockedAudio, ytdl};
+use serenity::model::channel::Message;
use typemap::Key;
@@ -185,17 +186,22 @@ pub fn register_commands(f: StandardFramework) -> StandardFramework {
.desc("queue a request")
.guild_only(true)
.cmd(play))
-}
+ .unrecognised_command(|ctx, msg, unrec| {
+ let url = match msg.content.split_whitespace().skip(1).next() {
+ Some(x) => x,
+ None => {
+ info!("received unrecognized command: {}", unrec);
+ let _ = send(msg.channel_id, "format your commands right. fuck you.", msg.tts);
+ return;
+ }
+ };
-command!(play(ctx, msg, args) {
- let url = match args.single::<String>() {
- Ok(url) => url,
- Err(_) => {
- send(msg.channel_id, "BAD LINK", msg.tts)?;
- return Ok(());
- }
- };
+ let _ = _play(ctx, msg, &url);
+ })
+}
+fn _play(ctx: &Context, msg: &Message, url: &str) -> Result<()> {
+ debug!("playing '{}'", url);
if !url.starts_with("http") {
send(msg.channel_id, "bAD LiNk", msg.tts)?;
return Ok(());
@@ -208,16 +214,30 @@ command!(play(ctx, msg, args) {
trace!("acquiring queue lock");
- let mut queue_lock = ctx.data.lock().get::<PlayQueue>().cloned().unwrap();
+ let queue_lock = ctx.data.lock().get::<PlayQueue>().cloned().unwrap();
let mut play_queue = queue_lock.write().unwrap();
trace!("queue lock acquired");
play_queue.queue.push_back(PlayArgs{
initiator: msg.author.name.clone(),
- url,
+ url: url.to_owned(),
sender_channel: msg.channel_id,
});
+
+ Ok(())
+}
+
+command!(play(ctx, msg, args) {
+ let url = match args.single::<String>() {
+ Ok(url) => url,
+ Err(_) => {
+ send(msg.channel_id, "BAD LINK", msg.tts)?;
+ return Ok(());
+ }
+ };
+
+ _play(ctx, msg, &url)?;
});
command!(pause(ctx, msg) {
diff --git a/src/main.rs b/src/main.rs
index 0a03cfd..8d5baa2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -87,7 +87,7 @@ fn run() -> Result<()> {
)
.before(|_ctx, message, cmd| {
let result = message.guild_id().map_or(false, |x| x.0 == *TARGET_GUILD);
- debug!("got command {} from user '{}' ({}). accept: {}", cmd, message.author.name, message.author.id, result);
+ debug!("got command '{}' from user '{}' ({}). accept: {}", cmd, message.author.name, message.author.id, result);
result
})