[Events] Events become classes with typings. (#19)

This commit is contained in:
2026-09-30 06:48:01 -07:00
committed by GitHub
parent 56f528c0c3
commit 1757ef2f8a
15 changed files with 119 additions and 91 deletions
+8 -6
View File
@@ -1,18 +1,20 @@
import { GuildTextBasedChannel, Message, OmitPartialGroupDMChannel, PartialMessage, ReadonlyCollection } from 'discord.js';
import { Client, GuildTextBasedChannel, Message, OmitPartialGroupDMChannel, PartialMessage, ReadonlyCollection } from 'discord.js';
import { Database } from '../../shared/Database';
import { Event } from '../../types';
import { logDeletion } from '../../utils';
export default {
event: 'messageDeleteBulk',
class MessageDeleteBulkEvent implements Event<Client, 'messageDeleteBulk'> {
event = 'messageDeleteBulk' as const;
handler: async (messages: ReadonlyCollection<string, Message | OmitPartialGroupDMChannel<PartialMessage>>, channel: GuildTextBasedChannel) => {
async execute(context: Client<boolean>, messages: ReadonlyCollection<string, Message | OmitPartialGroupDMChannel<PartialMessage>>, channel: GuildTextBasedChannel): Promise<void> {
for (const message of messages.values()) {
const loggedMessage = await Database.getMessageWithRetry(message.id);
if (!loggedMessage) continue;
await Database.removeMessge(message.id);
if (message.inGuild()) await logDeletion(loggedMessage, message);
}
}
};
}
export default new MessageDeleteBulkEvent();