Files
shadowbot/src/events/guild_member_event.rs
T
Puechberty Arthur 3e69185296 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`.
2026-04-10 02:13:04 +02:00

50 lines
1.2 KiB
Rust

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;
}