34 lines
956 B
Rust
34 lines
956 B
Rust
use log::error;
|
|
use serenity::framework::standard::{macros::command, Args, CommandResult};
|
|
use serenity::model::channel::Message;
|
|
use serenity::prelude::Context;
|
|
|
|
#[command]
|
|
async fn clap(ctx: &mut Context, msg: &Message, mut args: Args) -> CommandResult {
|
|
let resp = match args
|
|
.iter()
|
|
.map(|arg: Result<String, _>| match arg {
|
|
Ok(arg) => arg,
|
|
Err(e) => {
|
|
error!(
|
|
"Failed to cast clap arg to String; returning empty string instead: {:?}",
|
|
e
|
|
);
|
|
String::default()
|
|
}
|
|
})
|
|
.collect::<Vec<_>>()
|
|
.as_slice()
|
|
{
|
|
[] => ":clap:".to_string(),
|
|
[_] => "You can't clap a single word."
|
|
.split_whitespace()
|
|
.collect::<Vec<_>>()
|
|
.join(" :clap: "),
|
|
args => args.join(" :clap: "),
|
|
};
|
|
|
|
msg.channel_id.say(ctx, resp).await?;
|
|
Ok(())
|
|
}
|