Adds events for MessageUpdate and MessageDelete/deleteRepliesToAuthorMessage

This commit is contained in:
Matheus Albino
2024-11-03 13:00:48 -03:00
parent 62356142ac
commit 41d4047663
3 changed files with 37 additions and 13 deletions

View File

@@ -31,17 +31,20 @@ client.on(Events.MessageCreate, async (message) => {
messagesArr = handleMessageReposts(messagesArr, message); messagesArr = handleMessageReposts(messagesArr, message);
}); });
client.on(Events.MessageUpdate, async (message) => { // not needed for some reason
if (!botIsReady) return; // client.on(Events.MessageUpdate, async (newMessage) => {
// if (!botIsReady) return;
messagesArr = handleMessageUpdate(messagesArr, message); // TODO //
}); // return;
//
// messagesArr = handleMessageUpdate(messagesArr, newMessage);
// });
client.on(Events.MessageDelete, async (message) => { client.on(Events.MessageDelete, async (message) => {
if (!botIsReady) return; if (!botIsReady) return;
messagesArr = deleteMessageFromMessagesArray(messagesArr, message); messagesArr = deleteMessageFromMessagesArray(messagesArr, message);
deleteRepliesToAuthorMessage(message); // TODO deleteRepliesToAuthorMessage(client, message);
}); });
await client.login(process.env.DISCORD_TOKEN); await client.login(process.env.DISCORD_TOKEN);

View File

@@ -1,5 +1,16 @@
import type { Message, PartialMessage } from "discord.js"; import type { Client, Message, PartialMessage } from "discord.js";
export default function deleteRepliesToAuthorMessage( export default async function deleteRepliesToAuthorMessage(
authorMessage: Message | PartialMessage, client: Client,
): void { } authorMessage: Message | PartialMessage,
): Promise<void> {
const channelMessages = await authorMessage.channel.messages.fetch();
for (const [, message] of channelMessages) {
if (!client.user || !message.reference) continue;
if (message.author.id !== client.user.id) continue;
if (message.reference.messageId !== authorMessage.id) continue;
message.delete();
}
}

View File

@@ -1,8 +1,18 @@
import type { Message, PartialMessage } from "discord.js"; import type { Message, PartialMessage } from "discord.js";
export default function handleMessageUpdate( export default function handleMessageUpdate(
messagesArray: Message[], messagesArray: Message[],
updatedMessage: Message | PartialMessage, updatedMessage: Message | PartialMessage,
): Message[] { ): Message[] {
return messagesArray; if (updatedMessage.partial) return messagesArray;
const outdatedMessageIndexInMessagesArray = messagesArray.findIndex(
(message) => message.id === updatedMessage.id,
);
if (outdatedMessageIndexInMessagesArray === -1) return messagesArray;
messagesArray[outdatedMessageIndexInMessagesArray] = updatedMessage;
return messagesArray;
} }