use super::Context;
use super::prelude::*;
#[async_trait::async_trait]
pub trait EventHandler: Send + Sync {
async fn ready(&self, _ctx: Context, _ready: Ready) {}
async fn resumed(&self, _ctx: Context) {}
async fn message_create(&self, _ctx: Context, _message: Message) {}
async fn direct_message_create(&self, _ctx: Context, _message: Message) {}
async fn direct_message_delete(&self, _ctx: Context, _message: MessageDelete) {}
async fn group_message_create(&self, _ctx: Context, _message: GroupMessage) {}
async fn c2c_message_create(&self, _ctx: Context, _message: C2CMessage) {}
async fn message_delete(&self, _ctx: Context, _message: MessageDelete) {}
async fn public_message_delete(&self, _ctx: Context, _message: MessageDelete) {}
async fn message_reaction_add(&self, _ctx: Context, _reaction: Reaction) {}
async fn message_reaction_remove(&self, _ctx: Context, _reaction: Reaction) {}
async fn interaction_create(&self, _ctx: Context, _interaction: Interaction) {}
async fn audio_start(&self, _ctx: Context, _audio: Audio) {}
async fn audio_finish(&self, _ctx: Context, _audio: Audio) {}
async fn on_mic(&self, _ctx: Context, _audio: Audio) {}
async fn off_mic(&self, _ctx: Context, _audio: Audio) {}
async fn guild_create(&self, _ctx: Context, _guild: Guild) {}
async fn guild_update(&self, _ctx: Context, _guild: Guild) {}
async fn guild_delete(&self, _ctx: Context, _guild: Guild) {}
async fn channel_create(&self, _ctx: Context, _channel: Channel) {}
async fn channel_update(&self, _ctx: Context, _channel: Channel) {}
async fn channel_delete(&self, _ctx: Context, _channel: Channel) {}
async fn guild_member_add(&self, _ctx: Context, _member: Member) {}
async fn guild_member_update(&self, _ctx: Context, _member: Member) {}
async fn guild_member_remove(&self, _ctx: Context, _member: Member) {}
async fn message_audit_pass(&self, _ctx: Context, _audit: MessageAudit) {}
async fn message_audit_reject(&self, _ctx: Context, _audit: MessageAudit) {}
async fn friend_add(&self, _ctx: Context, _event: C2CManageEvent) {}
async fn friend_del(&self, _ctx: Context, _event: C2CManageEvent) {}
async fn c2c_msg_reject(&self, _ctx: Context, _event: C2CManageEvent) {}
async fn c2c_msg_receive(&self, _ctx: Context, _event: C2CManageEvent) {}
async fn subscribe_message_status(&self, _ctx: Context, _event: SubscribeMessageStatusData) {}
async fn enter_aio(&self, _ctx: Context, _event: EnterAioEvent) {}
async fn group_add_robot(&self, _ctx: Context, _event: GroupManageEvent) {}
async fn group_del_robot(&self, _ctx: Context, _event: GroupManageEvent) {}
async fn group_msg_reject(&self, _ctx: Context, _event: GroupManageEvent) {}
async fn group_msg_receive(&self, _ctx: Context, _event: GroupManageEvent) {}
async fn audio_or_live_channel_member_enter(&self, _ctx: Context, _audio: PublicAudio) {}
async fn audio_or_live_channel_member_exit(&self, _ctx: Context, _audio: PublicAudio) {}
async fn forum_thread_create(&self, _ctx: Context, _thread: Thread) {}
async fn forum_thread_update(&self, _ctx: Context, _thread: Thread) {}
async fn forum_thread_delete(&self, _ctx: Context, _thread: Thread) {}
async fn forum_post_create(&self, _ctx: Context, _post: Post) {}
async fn forum_post_delete(&self, _ctx: Context, _post: Post) {}
async fn forum_reply_create(&self, _ctx: Context, _reply: Reply) {}
async fn forum_reply_delete(&self, _ctx: Context, _reply: Reply) {}
async fn forum_publish_audit_result(&self, _ctx: Context, _result: ForumAuditResult) {}
async fn open_forum_thread_create(&self, _ctx: Context, _thread: OpenThread) {}
async fn open_forum_thread_update(&self, _ctx: Context, _thread: OpenThread) {}
async fn open_forum_thread_delete(&self, _ctx: Context, _thread: OpenThread) {}
async fn open_forum_post_create(&self, _ctx: Context, _thread: OpenThread) {}
async fn open_forum_post_delete(&self, _ctx: Context, _thread: OpenThread) {}
async fn open_forum_reply_create(&self, _ctx: Context, _thread: OpenThread) {}
async fn open_forum_reply_delete(&self, _ctx: Context, _thread: OpenThread) {}
async fn unknown_event(&self, _ctx: Context, _event: GatewayEvent) {}
async fn error(&self, _error: BotError) {
error!("Event handler error: {}", _error);
}
}