Add "fuck" command

closes #30

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/31/head
trivernis 3 years ago
parent 30863c28e1
commit 5b02a26217
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -0,0 +1,38 @@
use serenity::client::Context;
use serenity::framework::standard::macros::command;
use serenity::framework::standard::{Args, CommandResult};
use serenity::model::channel::Message;
use serenity::model::id::UserId;
#[command]
#[description("Fuck this person in particular")]
#[usage("[<amount>] [<verbosity>]")]
#[min_args(1)]
#[max_args(3)]
#[bucket("general")]
#[aliases("frick", "fock")]
async fn fuck(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult {
let person = args.single::<UserId>()?;
let mut amount = args.single::<usize>().unwrap_or(3);
if amount > 10 {
amount = 10;
}
let mut verbosity = args.single::<usize>().unwrap_or(1);
if verbosity == 0 {
verbosity = 1
}
let fuck_word = match verbosity {
1 => "frick",
2 => "flock",
3 => "fock",
4 => "fck",
_ => "fuck",
};
for _ in 0..amount {
msg.channel_id
.say(&ctx, format!("{} <@{}>", fuck_word, person))
.await?;
}
Ok(())
}

@ -3,6 +3,7 @@ use serenity::framework::standard::macros::group;
use about::ABOUT_COMMAND;
use add_media::ADD_MEDIA_COMMAND;
use clear::CLEAR_COMMAND;
use fuck::FUCK_COMMAND;
use media::MEDIA_COMMAND;
use pain::PAIN_COMMAND;
use ping::PING_COMMAND;
@ -16,6 +17,7 @@ use xkcd::XKCD_COMMAND;
mod about;
mod add_media;
mod clear;
mod fuck;
pub(crate) mod help;
mod media;
mod pain;
@ -29,6 +31,6 @@ mod xkcd;
#[group]
#[commands(
ping, stats, shutdown, time, timezones, qalc, about, add_media, media, pain, clear, xkcd
ping, stats, shutdown, time, timezones, qalc, about, add_media, media, pain, clear, xkcd, fuck
)]
pub struct Misc;

Loading…
Cancel
Save