mirror of
https://github.com/arthur-pbty/shadowbot.git
synced 2026-06-14 08:08:29 +02:00
feat(events): add message update, role, and voice state update handlers
- Implemented `handle_message_update` to log message edits. - Created role event handlers for role creation, update, and deletion. - Added voice state update handling to log channel changes. - Introduced a new `ready_event` handler to restore bot presence and enforce blacklist. - Updated `mod.rs` to include new event modules. - Enhanced `main.rs` for database connection and initialization. - Added comprehensive permission management in `permissions.rs`.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
use serenity::model::prelude::*;
|
||||
use serenity::prelude::*;
|
||||
|
||||
use crate::commands::logs_service;
|
||||
|
||||
pub async fn handle_member_addition(ctx: &Context, new_member: &Member) {
|
||||
logs_service::on_member_join(ctx, new_member.guild_id, &new_member.user).await;
|
||||
}
|
||||
|
||||
pub async fn handle_member_removal(ctx: &Context, guild_id: GuildId, user: &User) {
|
||||
logs_service::on_member_leave(ctx, guild_id, user).await;
|
||||
}
|
||||
|
||||
pub async fn handle_member_update(
|
||||
ctx: &Context,
|
||||
old_if_available: Option<Member>,
|
||||
new: Option<Member>,
|
||||
event: &GuildMemberUpdateEvent,
|
||||
) {
|
||||
if let (Some(old), Some(new_member)) = (old_if_available.clone(), new.clone()) {
|
||||
logs_service::on_member_roles_updated(
|
||||
ctx,
|
||||
new_member.guild_id,
|
||||
new_member.user.id,
|
||||
&old.roles,
|
||||
&new_member.roles,
|
||||
)
|
||||
.await;
|
||||
|
||||
logs_service::on_boost_update(
|
||||
ctx,
|
||||
new_member.guild_id,
|
||||
new_member.user.id,
|
||||
old.premium_since,
|
||||
new_member.premium_since,
|
||||
)
|
||||
.await;
|
||||
return;
|
||||
}
|
||||
|
||||
logs_service::on_boost_update(
|
||||
ctx,
|
||||
event.guild_id,
|
||||
event.user.id,
|
||||
None,
|
||||
event.premium_since,
|
||||
)
|
||||
.await;
|
||||
}
|
||||
Reference in New Issue
Block a user