// Metro module 7719 (f7720). import ChannelStore from "../../stores/ChannelStore"; import MessageStore from "../../stores/MessageStore"; import { AbortCodes, MessageEmbedTypes, MessageTypes } from "../../Constants"; import { getFailedMessageId, isMessageDataEdit } from "../../lib/MessageQueue"; import { getAutomodErrorMessage } from "./AutomodErrorUtils"; import { createMessageRecord } from "../messages/MessageRecordUtils"; import { isAutomodMessageRecord, isAutomodNotification } from "./AutomodMessageUtils"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import Module589 from "../../_bundle/Module589"; import Dispatcher from "../../Dispatcher"; let automodFailedMessages, c4852_9, mentionRaidDetectionByGuild, lastIncidentAlertMessage; const handleMessageSendFailedAutomod = function handleMessageSendFailedAutomod({ messageData, errorResponseBody }) { const failedMessageId = getFailedMessageId(messageData); automodFailedMessages[failedMessageId] = { id: failedMessageId, isBlockedEdit: isMessageDataEdit(messageData), messageData, errorMessage: getAutomodErrorMessage(messageData, errorResponseBody) }; c4852_9 = c4852_9 + 1; return true; }; const handleLoadMessages = function handleLoadMessages({ channelId, messages }) { const channel = ChannelStore.getChannel(channelId); const r10 = channel == null ? void 0 : channel.getGuildId(); if (r10 == null) { return false; } const r15 = messages.reduce((acc, message) => { if (message.type === MessageTypes.AUTO_MODERATION_ACTION) { const embeds = message.embeds; return (embeds == null ? void 0 : embeds.some((embed) => embed.type === MessageEmbedTypes.AUTO_MODERATION_NOTIFICATION)) ? acc != null ? SnowflakeUtils.compare(acc, message.id) === -1 ? message.id : void 0 : message.id : acc; } return acc; }, lastIncidentAlertMessage[r10]); let r16 = r15 != null && lastIncidentAlertMessage[r10] !== r15; if (r16) { lastIncidentAlertMessage[r10] = r15; r16 = true; } return r16; }; automodFailedMessages = {}; c4852_9 = 0; mentionRaidDetectionByGuild = {}; lastIncidentAlertMessage = {}; class GuildAutomodMessageStore extends Module589.PersistedStore { static displayName = "GuildAutomodMessageStore"; static persistKey = "GuildAutomodMessages"; initialize(a0) { this.waitFor(ChannelStore, MessageStore); if (a0 != null) { automodFailedMessages = a0.automodFailedMessages; mentionRaidDetectionByGuild = a0.mentionRaidDetectionByGuild; } } getState() { return { automodFailedMessages, mentionRaidDetectionByGuild, lastIncidentAlertMessage }; } getMessage(a0) { const r1 = a0 == null; let r2 = null; if (!r1) { let r6 = automodFailedMessages[a0]; if (r6 == null) { r6 = null; } r2 = r6; } return r2; } getMessagesVersion() { return c4852_9; } getMentionRaidDetected(a0) { let r4 = mentionRaidDetectionByGuild[a0]; if (r4 == null) { r4 = null; } return r4; } getLastIncidentAlertMessage(a0) { let r4 = lastIncidentAlertMessage[a0]; if (r4 == null) { r4 = null; } return r4; } } const guildAutomodMessageStore = new GuildAutomodMessageStore(Dispatcher, { CONNECTION_OPEN: function handleConnectionOpen() { let r1 = Object.keys(automodFailedMessages).length !== 0; if (r1) { automodFailedMessages = {}; c4852_9 = c4852_9 + 1; r1 = true; } return r1; }, LOAD_MESSAGES_SUCCESS: handleLoadMessages, LOCAL_MESSAGES_LOADED: handleLoadMessages, MESSAGE_CREATE: function handleIncidentAlertMessageCreate({ guildId, message }) { if (guildId == null) { return false; } if (message.type !== MessageTypes.AUTO_MODERATION_ACTION) { return false; } const messageRecord = createMessageRecord(message); let r21 = !!isAutomodMessageRecord(messageRecord); if (r21) { let r27 = !!isAutomodNotification(messageRecord); if (r27) { lastIncidentAlertMessage[guildId] = messageRecord.id; r27 = true; } r21 = r27; } return r21; }, MESSAGE_SEND_FAILED_AUTOMOD: handleMessageSendFailedAutomod, MESSAGE_EDIT_FAILED_AUTOMOD: handleMessageSendFailedAutomod, REMOVE_AUTOMOD_MESSAGE_NOTICE: function handleMessageNoticeRemove({ messageId }) { if (automodFailedMessages[messageId] != null) { delete automodFailedMessages[messageId]; } c4852_9 = c4852_9 + 1; return true; }, MESSAGE_END_EDIT: function handleMessageEndEdit({ response }) { if (response?.body == null) { return false; } if (response.body.code === AbortCodes.AUTOMOD_MESSAGE_BLOCKED) { return false; } const id = response.body.id; if (id == null) { return false; } if (automodFailedMessages[id] != null) { delete automodFailedMessages[id]; } c4852_9 = c4852_9 + 1; }, AUTO_MODERATION_MENTION_RAID_DETECTION: function handleMentionRaidDetection(a0) { const guildId = a0.guildId; mentionRaidDetectionByGuild[guildId] = { guildId, decisionId: a0.decisionId, suspiciousMentionActivityUntil: a0.suspiciousMentionActivityUntil }; return true; }, AUTO_MODERATION_MENTION_RAID_NOTICE_DISMISS: function handleMentionRaidNoticeDismiss(a0) { delete mentionRaidDetectionByGuild[a0.guildId]; return true; } }); export default guildAutomodMessageStore;