perish command, misc
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
pub mod kiss;
|
||||
pub mod perish;
|
||||
pub mod ping;
|
||||
|
||||
34
src/discordbot/commands/perish.rs
Normal file
34
src/discordbot/commands/perish.rs
Normal file
@@ -0,0 +1,34 @@
|
||||
use serenity::all::{
|
||||
CommandInteraction, Context, CreateEmbed, CreateInteractionResponse,
|
||||
CreateInteractionResponseMessage,
|
||||
};
|
||||
use serenity::builder::CreateCommand;
|
||||
|
||||
const PERISH_GIF_LINK: &str = "https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbGM3NDRtaXQ0ZWk3enlybmwydHZmc3VwcWlzbXN1N2Zyc3Jpc2lmYSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/4kkOaBEy84jzD5ijGV/giphy.gif";
|
||||
|
||||
pub async fn run(ctx: &Context, interaction: &CommandInteraction) -> Result<(), serenity::Error> {
|
||||
let caller_name = interaction
|
||||
.member
|
||||
.as_ref()
|
||||
.map(|m| m.nick.clone().unwrap_or_else(|| m.user.name.clone()))
|
||||
.unwrap_or_else(|| interaction.user.name.clone());
|
||||
|
||||
let embed = CreateEmbed::new()
|
||||
.thumbnail(PERISH_GIF_LINK)
|
||||
.title(format!("{caller_name} has perished!"))
|
||||
.description("Oh the misery...")
|
||||
.color(0xFF89B4);
|
||||
|
||||
interaction
|
||||
.create_response(
|
||||
&ctx.http,
|
||||
CreateInteractionResponse::Message(
|
||||
CreateInteractionResponseMessage::new().add_embed(embed),
|
||||
),
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
pub fn register() -> CreateCommand {
|
||||
CreateCommand::new("perish").description("w proch się obróć.")
|
||||
}
|
||||
@@ -17,7 +17,11 @@ impl EventHandler for Handler {
|
||||
async fn ready(&self, ctx: Context, ready: Ready) {
|
||||
info!("{} is connected!", ready.user.name);
|
||||
|
||||
let cmds = vec![commands::ping::register(), commands::kiss::register()];
|
||||
let cmds = vec![
|
||||
commands::ping::register(),
|
||||
commands::kiss::register(),
|
||||
commands::perish::register(),
|
||||
];
|
||||
|
||||
let guild_id = serenity::model::id::GuildId::from(
|
||||
std::env::var(GUILD_ID).unwrap().parse::<u64>().unwrap(),
|
||||
@@ -30,13 +34,13 @@ impl EventHandler for Handler {
|
||||
}
|
||||
|
||||
async fn interaction_create(&self, ctx: Context, interaction: Interaction) {
|
||||
if let Interaction::Command(command) = interaction {
|
||||
let result = match command.data.name.as_str() {
|
||||
"ping" => commands::ping::run(&ctx, &command).await,
|
||||
"kiss" => commands::kiss::run(&ctx, &command).await,
|
||||
if let Interaction::Command(cmd) = interaction {
|
||||
let result = match cmd.data.name.as_str() {
|
||||
"ping" => commands::ping::run(&ctx, &cmd).await,
|
||||
"kiss" => commands::kiss::run(&ctx, &cmd).await,
|
||||
"perish" => commands::perish::run(&ctx, &cmd).await,
|
||||
_ => {
|
||||
command
|
||||
.create_response(
|
||||
cmd.create_response(
|
||||
&ctx.http,
|
||||
CreateInteractionResponse::Message(
|
||||
CreateInteractionResponseMessage::new().content("Not implemented"),
|
||||
|
||||
Reference in New Issue
Block a user