From caef412b9ce9e0d34d5317970d08937cb5af2fe3 Mon Sep 17 00:00:00 2001 From: Adrien Faure Date: Wed, 28 Feb 2024 16:33:16 +0100 Subject: [PATCH 1/4] fix(quoi-feur): quoi-feur with edited messages --- src/modules/quoiFeur/quoiFeur.helpers.ts | 3 +++ src/modules/quoiFeur/quoiFeur.module.ts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/modules/quoiFeur/quoiFeur.helpers.ts b/src/modules/quoiFeur/quoiFeur.helpers.ts index 417c7bb..644e635 100644 --- a/src/modules/quoiFeur/quoiFeur.helpers.ts +++ b/src/modules/quoiFeur/quoiFeur.helpers.ts @@ -62,6 +62,9 @@ export const reactOnEndWithQuoi = async (message: Message) => { await reactWithFeur(message); }; +export const reactOnEndWithQuoiUpdated = async (oldMessage: Message, newMessage: Message) => + reactOnEndWithQuoi(newMessage); + export const addQuoiFeurToChannel = async (interaction: ChatInputCommandInteraction) => { const { channel } = interaction; if (!channel || !channel.isTextBased() || channel.type !== ChannelType.GuildText) return; diff --git a/src/modules/quoiFeur/quoiFeur.module.ts b/src/modules/quoiFeur/quoiFeur.module.ts index 4274f3a..6f84af5 100644 --- a/src/modules/quoiFeur/quoiFeur.module.ts +++ b/src/modules/quoiFeur/quoiFeur.module.ts @@ -5,6 +5,7 @@ import { addQuoiFeurToChannel, cleanCacheOnChannelDelete, reactOnEndWithQuoi, + reactOnEndWithQuoiUpdated, removeQuoiFeurFromChannel, } from './quoiFeur.helpers'; @@ -31,6 +32,7 @@ export const quoiFeur = createModule({ ], eventHandlers: () => ({ messageCreate: reactOnEndWithQuoi, + messageUpdate: reactOnEndWithQuoiUpdated, channelDelete: cleanCacheOnChannelDelete, }), intents: ['Guilds', 'GuildMessages', 'MessageContent', 'GuildMessageReactions'], From 8e69cb6081b1973010dd5a161a002ae7d7533184 Mon Sep 17 00:00:00 2001 From: Adrien Faure Date: Wed, 28 Feb 2024 16:47:04 +0100 Subject: [PATCH 2/4] fix(quoi-feur): rename oldMessage -> _oldMessage --- src/modules/quoiFeur/quoiFeur.helpers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/quoiFeur/quoiFeur.helpers.ts b/src/modules/quoiFeur/quoiFeur.helpers.ts index 644e635..78fa60b 100644 --- a/src/modules/quoiFeur/quoiFeur.helpers.ts +++ b/src/modules/quoiFeur/quoiFeur.helpers.ts @@ -62,7 +62,7 @@ export const reactOnEndWithQuoi = async (message: Message) => { await reactWithFeur(message); }; -export const reactOnEndWithQuoiUpdated = async (oldMessage: Message, newMessage: Message) => +export const reactOnEndWithQuoiUpdated = async (_oldMessage: Message, newMessage: Message) => reactOnEndWithQuoi(newMessage); export const addQuoiFeurToChannel = async (interaction: ChatInputCommandInteraction) => { From 9bacefbb1de14cfbc0008ab8eb57c94b80ef064f Mon Sep 17 00:00:00 2001 From: Adrien Faure Date: Wed, 28 Feb 2024 19:01:00 +0100 Subject: [PATCH 3/4] fix(quoi-feur): fix typing need PartialMessage --- src/modules/quoiFeur/quoiFeur.helpers.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/quoiFeur/quoiFeur.helpers.ts b/src/modules/quoiFeur/quoiFeur.helpers.ts index 78fa60b..3f34f61 100644 --- a/src/modules/quoiFeur/quoiFeur.helpers.ts +++ b/src/modules/quoiFeur/quoiFeur.helpers.ts @@ -2,8 +2,9 @@ import { ChannelType, type ChatInputCommandInteraction, DMChannel, - type Message, + Message, type NonThreadGuildBasedChannel, + type PartialMessage, } from 'discord.js'; import { cache } from '../../core/cache'; @@ -62,8 +63,13 @@ export const reactOnEndWithQuoi = async (message: Message) => { await reactWithFeur(message); }; -export const reactOnEndWithQuoiUpdated = async (_oldMessage: Message, newMessage: Message) => - reactOnEndWithQuoi(newMessage); +export const reactOnEndWithQuoiUpdated = async ( + _oldMessage: Message | PartialMessage, + newMessage: Message | PartialMessage, +) => { + if (!(newMessage instanceof Message)) return; + await reactOnEndWithQuoi(newMessage); +}; export const addQuoiFeurToChannel = async (interaction: ChatInputCommandInteraction) => { const { channel } = interaction; From ab5c8d7706e16e3e7fd9597a66cb99cdffd8283b Mon Sep 17 00:00:00 2001 From: Adrien Faure Date: Thu, 29 Feb 2024 00:22:27 +0100 Subject: [PATCH 4/4] fix(quoi-feur): prevent bot for re-reacting on edit --- src/modules/quoiFeur/quoiFeur.helpers.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/modules/quoiFeur/quoiFeur.helpers.ts b/src/modules/quoiFeur/quoiFeur.helpers.ts index 3f34f61..b88af96 100644 --- a/src/modules/quoiFeur/quoiFeur.helpers.ts +++ b/src/modules/quoiFeur/quoiFeur.helpers.ts @@ -68,6 +68,17 @@ export const reactOnEndWithQuoiUpdated = async ( newMessage: Message | PartialMessage, ) => { if (!(newMessage instanceof Message)) return; + + // Both E and U are in feur and coubeh, that should be sufficient to detect if the bot has already reacted + const feurCoubeh = new Set([EMOJI.E, EMOJI.U]); + + // Check if the old message already has a reaction + const selfReactions = newMessage.reactions.cache.some((reaction) => { + return reaction.me && reaction.emoji.name && feurCoubeh.has(reaction.emoji.name); + }); + + if (selfReactions) return; + await reactOnEndWithQuoi(newMessage); };