mirror of
https://github.com/ahmadk953/poixpixel-discord-bot.git
synced 2025-04-02 09:44:14 +00:00
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
import { AuditLogEvent, Events, Message, PartialMessage } from 'discord.js';
|
|
|
|
import { Event } from '../types/EventTypes.js';
|
|
import logAction from '../util/logging/logAction.js';
|
|
|
|
export const messageDelete: Event<typeof Events.MessageDelete> = {
|
|
name: Events.MessageDelete,
|
|
execute: async (
|
|
message: Omit<Partial<Message<boolean> | PartialMessage>, 'channel'>,
|
|
) => {
|
|
try {
|
|
if (!message.guild || message.author?.bot) return;
|
|
|
|
const { guild } = message;
|
|
const auditLogs = await guild.fetchAuditLogs({
|
|
type: AuditLogEvent.MessageDelete,
|
|
limit: 1,
|
|
});
|
|
const executor = auditLogs.entries.first()?.executor;
|
|
|
|
const moderator = executor
|
|
? await guild.members.fetch(executor.id)
|
|
: undefined;
|
|
|
|
await logAction({
|
|
guild,
|
|
action: 'messageDelete',
|
|
message: message as Message<true>,
|
|
moderator,
|
|
});
|
|
} catch (error) {
|
|
console.error('Error handling message delete:', error);
|
|
}
|
|
},
|
|
};
|
|
|
|
export const messageUpdate: Event<typeof Events.MessageUpdate> = {
|
|
name: Events.MessageUpdate,
|
|
execute: async (
|
|
oldMessage: Omit<Partial<Message<boolean> | PartialMessage>, 'channel'>,
|
|
newMessage: Message,
|
|
) => {
|
|
try {
|
|
if (
|
|
!oldMessage.guild ||
|
|
oldMessage.author?.bot ||
|
|
oldMessage.content === newMessage.content
|
|
) {
|
|
return;
|
|
}
|
|
|
|
await logAction({
|
|
guild: oldMessage.guild,
|
|
action: 'messageEdit',
|
|
message: newMessage as Message<true>,
|
|
oldContent: oldMessage.content ?? '',
|
|
newContent: newMessage.content ?? '',
|
|
});
|
|
} catch (error) {
|
|
console.error('Error handling message update:', error);
|
|
}
|
|
},
|
|
};
|
|
|
|
export default [messageDelete, messageUpdate];
|