diff --git a/src/equicordplugins/messageLoggerEnhanced/index.tsx b/src/equicordplugins/messageLoggerEnhanced/index.tsx index bbf4df3a..e4c560d8 100644 --- a/src/equicordplugins/messageLoggerEnhanced/index.tsx +++ b/src/equicordplugins/messageLoggerEnhanced/index.tsx @@ -78,7 +78,8 @@ async function messageDeleteHandler(payload: MessageDeletePayload & { isBulk: bo bot: message?.bot || message?.author?.bot, flags: message?.flags, ghostPinged, - isCachedByUs: (message as LoggedMessageJSON).ourCache + isCachedByUs: (message as LoggedMessageJSON).ourCache, + webhookId: message?.webhookId }) ) { // Flogger.log("IGNORING", message, payload); diff --git a/src/equicordplugins/messageLoggerEnhanced/settings.tsx b/src/equicordplugins/messageLoggerEnhanced/settings.tsx index 00f2bee5..d21ea4b0 100644 --- a/src/equicordplugins/messageLoggerEnhanced/settings.tsx +++ b/src/equicordplugins/messageLoggerEnhanced/settings.tsx @@ -52,6 +52,12 @@ export const settings = definePluginSettings({ } }, + ignoreWebhooks: { + type: OptionType.BOOLEAN, + description: "Whether to ignore messages by webhooks", + default: false, + }, + ignoreSelf: { type: OptionType.BOOLEAN, description: "Whether to ignore messages by yourself", diff --git a/src/equicordplugins/messageLoggerEnhanced/utils/index.ts b/src/equicordplugins/messageLoggerEnhanced/utils/index.ts index cff08e2c..082e2c19 100644 --- a/src/equicordplugins/messageLoggerEnhanced/utils/index.ts +++ b/src/equicordplugins/messageLoggerEnhanced/utils/index.ts @@ -74,6 +74,7 @@ interface ShouldIgnoreArguments { bot?: boolean; ghostPinged?: boolean; isCachedByUs?: boolean; + webhookId?: string; } const EPHEMERAL = 64; @@ -87,7 +88,7 @@ const UserGuildSettingsStore = findStoreLazy("UserGuildSettingsStore"); * @param {ShouldIgnoreArguments} args - An object containing the message details. * @returns {boolean} - True if the message should be ignored, false if it should be kept. */ -export function shouldIgnore({ channelId, authorId, guildId, flags, bot, ghostPinged, isCachedByUs }: ShouldIgnoreArguments): boolean { +export function shouldIgnore({ channelId, authorId, guildId, flags, bot, ghostPinged, isCachedByUs, webhookId }: ShouldIgnoreArguments): boolean { const isEphemeral = ((flags ?? 0) & EPHEMERAL) === EPHEMERAL; if (isEphemeral) return true; // ignore @@ -96,7 +97,7 @@ export function shouldIgnore({ channelId, authorId, guildId, flags, bot, ghostPi const myId = UserStore.getCurrentUser().id; const { ignoreUsers, ignoreChannels, ignoreGuilds } = Settings.plugins.MessageLogger; - const { ignoreBots, ignoreSelf } = settings.store; + const { ignoreBots, ignoreSelf, ignoreWebhooks } = settings.store; if (ignoreSelf && authorId === myId) return true; // ignore @@ -132,6 +133,8 @@ export function shouldIgnore({ channelId, authorId, guildId, flags, bot, ghostPi if ((ignoreBots && bot) && !isAuthorWhitelisted) return true; // ignore + if ((ignoreWebhooks && webhookId) && !isAuthorWhitelisted) return true; + if (ghostPinged) return false; // keep // author has highest priority