diff options
| -rw-r--r-- | packages/gateway/src/listeners/messageCreate/roleMentionCooldown.ts | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/packages/gateway/src/listeners/messageCreate/roleMentionCooldown.ts b/packages/gateway/src/listeners/messageCreate/roleMentionCooldown.ts index 7ad6d44..e021906 100644 --- a/packages/gateway/src/listeners/messageCreate/roleMentionCooldown.ts +++ b/packages/gateway/src/listeners/messageCreate/roleMentionCooldown.ts @@ -1,4 +1,4 @@ -import { Message } from "discord.js"; +import { Message, EmbedBuilder } from "discord.js"; import { CENTRAL_REVIVE_ROLEPLAY_ROLE_ID, CENTRAL_REVIVE_CHAT_ROLE_ID, @@ -9,8 +9,46 @@ const COOLDOWN_ROLES = [ CENTRAL_REVIVE_CHAT_ROLE_ID, ]; const COOLDOWN_DURATION = 30 * 60 * 1000; +const REVIVE_PING_LOG_CHANNEL_ID = "1428850496093032600"; const roleCooldowns = new Map<string, number>(); +const sendRevivePingLog = async ( + message: Message, + roleName: string, + roleId: string, +) => { + try { + const logChannel = message.client.channels.cache.get( + REVIVE_PING_LOG_CHANNEL_ID, + ); + + if (!logChannel || !logChannel.isTextBased() || logChannel.isDMBased()) { + console.error("Revive ping log channel not found or not text-based"); + + return; + } + + const embed = new EmbedBuilder() + .setTitle("🔔 Revive Ping Used") + .setColor(0xff6b6b) + .addFields( + { name: "User", value: `${message.author}`, inline: true }, + { name: "Role", value: `<@&${roleId}>`, inline: true }, + { name: "Channel", value: `${message.channel}`, inline: true }, + { + name: "Message", + value: `[Jump to Message](${message.url})`, + inline: false, + }, + ) + .setTimestamp(); + + await logChannel.send({ embeds: [embed] }); + } catch (error) { + console.error("Failed to send revive ping log:", error); + } +}; + export const handleRoleMentionCooldown = async (message: Message) => { if (message.author.bot) return; @@ -46,6 +84,7 @@ export const handleRoleMentionCooldown = async (message: Message) => { } roleCooldowns.set(role.id, now + COOLDOWN_DURATION); + await sendRevivePingLog(message, role.name, role.id); try { await role.setMentionable(false, "Role mention cooldown activated"); |