From 1787ec707ca0a8000caed57c07724d23135f0288 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Fri, 21 Aug 2020 03:48:16 +0300 Subject: [PATCH] Only send welcome messages once per user, until plugin reload --- backend/src/plugins/WelcomeMessage/WelcomeMessagePlugin.ts | 1 + .../plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts | 7 +++++++ backend/src/plugins/WelcomeMessage/types.ts | 1 + 3 files changed, 9 insertions(+) diff --git a/backend/src/plugins/WelcomeMessage/WelcomeMessagePlugin.ts b/backend/src/plugins/WelcomeMessage/WelcomeMessagePlugin.ts index 7563703f..68f16605 100644 --- a/backend/src/plugins/WelcomeMessage/WelcomeMessagePlugin.ts +++ b/backend/src/plugins/WelcomeMessage/WelcomeMessagePlugin.ts @@ -30,5 +30,6 @@ export const WelcomeMessagePlugin = zeppelinPlugin()(" const { state, guild } = pluginData; state.logs = new GuildLogs(guild.id); + state.sentWelcomeMessages = new Set(); }, }); diff --git a/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts b/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts index 3e5931c9..ee298c7f 100644 --- a/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts +++ b/backend/src/plugins/WelcomeMessage/events/SendWelcomeMessageEvt.ts @@ -16,6 +16,13 @@ export const SendWelcomeMessageEvt = welcomeEvent({ if (!config.message) return; if (!config.send_dm && !config.send_to_channel) return; + // Only send welcome messages once per user (even if they rejoin) until the plugin is reloaded + if (pluginData.state.sentWelcomeMessages.has(member.id)) { + return; + } + + pluginData.state.sentWelcomeMessages.add(member.id); + const formatted = await renderTemplate(config.message, { member: stripObjectToScalars(member, ["user"]), }); diff --git a/backend/src/plugins/WelcomeMessage/types.ts b/backend/src/plugins/WelcomeMessage/types.ts index 8ae13bce..33302578 100644 --- a/backend/src/plugins/WelcomeMessage/types.ts +++ b/backend/src/plugins/WelcomeMessage/types.ts @@ -14,6 +14,7 @@ export interface WelcomeMessagePluginType extends BasePluginType { config: TConfigSchema; state: { logs: GuildLogs; + sentWelcomeMessages: Set; }; }