summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/gateway/src/listeners/messageCreate/roleMentionCooldown.ts41
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");