forked from natto1784/singh3
separate interactions and handler
This commit is contained in:
46
src/handler/mod.rs
Normal file
46
src/handler/mod.rs
Normal file
@@ -0,0 +1,46 @@
|
||||
mod interactions;
|
||||
use serenity::{
|
||||
async_trait,
|
||||
model::{
|
||||
event::ResumedEvent,
|
||||
gateway::Ready,
|
||||
interactions::{
|
||||
ApplicationCommand, Interaction, InteractionData, InteractionResponseType,
|
||||
InteractionType,
|
||||
},
|
||||
},
|
||||
prelude::*,
|
||||
};
|
||||
use tracing::info;
|
||||
|
||||
pub struct Handler;
|
||||
|
||||
#[async_trait]
|
||||
impl EventHandler for Handler {
|
||||
async fn ready(&self, ctx: Context, ready: Ready) {
|
||||
info!("{} connected bhay", ready.user.name);
|
||||
let _ = ApplicationCommand::create_global_application_commands(&ctx.http, |commands| {
|
||||
commands.set_application_commands(interactions::general())
|
||||
})
|
||||
.await;
|
||||
}
|
||||
async fn resume(&self, _: Context, _: ResumedEvent) {
|
||||
info!("how th when the");
|
||||
}
|
||||
async fn interaction_create(&self, ctx: Context, interaction: Interaction) {
|
||||
if interaction.kind == InteractionType::ApplicationCommand {
|
||||
if let Some(InteractionData::ApplicationCommand(data)) = interaction.data.as_ref() {
|
||||
if let Err(why) = interaction
|
||||
.create_interaction_response(&ctx.http, |response| {
|
||||
response
|
||||
.kind(InteractionResponseType::ChannelMessageWithSource)
|
||||
.interaction_response_data(|message| interactions::responses(data.name.to_string(), message))
|
||||
})
|
||||
.await
|
||||
{
|
||||
println!("Cannot respond to slash command: {}", why);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user