diff options
| author | Fuwn <[email protected]> | 2025-11-18 15:41:36 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-11-18 15:41:36 -0800 |
| commit | 265dc1dda725f66b5b6bbca53fd25fcf6557ab12 (patch) | |
| tree | 88d8bf1530eed9873591470a161c20617f4a2c03 /packages | |
| parent | feat(gateway:roleplayThumbsUpReaction): Add subreddit moderator announcements... (diff) | |
| download | umabotdiscord-265dc1dda725f66b5b6bbca53fd25fcf6557ab12.tar.xz umabotdiscord-265dc1dda725f66b5b6bbca53fd25fcf6557ab12.zip | |
feat(gateway:reactionRoles): Add additional handler
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/gateway/src/listeners/reactionRoles.ts | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/packages/gateway/src/listeners/reactionRoles.ts b/packages/gateway/src/listeners/reactionRoles.ts index 2050120..b87f288 100644 --- a/packages/gateway/src/listeners/reactionRoles.ts +++ b/packages/gateway/src/listeners/reactionRoles.ts @@ -3,11 +3,15 @@ import { logUnexpectedDiscordAPIError } from "../utilities"; const REACTION_MESSAGE_ID = "1420987176140804219"; const TARGET_CHANNEL_ID = "1414436016520953856"; -const ART_ROLE_ID = "1410333831281643630"; +const ART_MEDIA_NSFW_ROLE_ID = "1410333831281643630"; +const ROLEPLAY_NSFW_ROLE_ID = "1418391675050528879"; const EMOJI_ROLE_MAPPINGS = { - "🎨": ART_ROLE_ID, + "🎨": ART_MEDIA_NSFW_ROLE_ID, + playground_slide: ROLEPLAY_NSFW_ROLE_ID, + "🛝": ROLEPLAY_NSFW_ROLE_ID, } as const; const ART_EMOJI = "🎨"; +const PLAYGROUND_SLIDE_EMOJI = "🛝"; export const initializeReactionRoles = async (client: Client) => { try { @@ -17,8 +21,15 @@ export const initializeReactionRoles = async (client: Client) => { const message = await channel.messages.fetch(REACTION_MESSAGE_ID); const hasArtReaction = message.reactions.cache.has(ART_EMOJI); + const hasPlaygroundSlideReaction = + message.reactions.cache.has(PLAYGROUND_SLIDE_EMOJI) || + message.reactions.cache.some( + (reaction) => reaction.emoji.name === "playground_slide", + ); if (!hasArtReaction) await message.react(ART_EMOJI); + if (!hasPlaygroundSlideReaction) + await message.react(PLAYGROUND_SLIDE_EMOJI); } catch (error) { logUnexpectedDiscordAPIError(error); } @@ -33,12 +44,17 @@ export const handleReactionRoles = (client: Client) => { if (message.id !== REACTION_MESSAGE_ID) return; - const emoji = reaction.emoji.name; + const emojiName = reaction.emoji.name; + const emojiIdentifier = reaction.emoji.identifier; - if (!emoji || !(emoji in EMOJI_ROLE_MAPPINGS)) return; + if (!emojiName) return; const roleId = - EMOJI_ROLE_MAPPINGS[emoji as keyof typeof EMOJI_ROLE_MAPPINGS]; + EMOJI_ROLE_MAPPINGS[emojiName as keyof typeof EMOJI_ROLE_MAPPINGS] || + (emojiIdentifier && + EMOJI_ROLE_MAPPINGS[ + emojiIdentifier as keyof typeof EMOJI_ROLE_MAPPINGS + ]); if (!roleId) return; @@ -69,12 +85,17 @@ export const handleReactionRoles = (client: Client) => { if (message.id !== REACTION_MESSAGE_ID) return; - const emoji = reaction.emoji.name; + const emojiName = reaction.emoji.name; + const emojiIdentifier = reaction.emoji.identifier; - if (!emoji || !(emoji in EMOJI_ROLE_MAPPINGS)) return; + if (!emojiName) return; const roleId = - EMOJI_ROLE_MAPPINGS[emoji as keyof typeof EMOJI_ROLE_MAPPINGS]; + EMOJI_ROLE_MAPPINGS[emojiName as keyof typeof EMOJI_ROLE_MAPPINGS] || + (emojiIdentifier && + EMOJI_ROLE_MAPPINGS[ + emojiIdentifier as keyof typeof EMOJI_ROLE_MAPPINGS + ]); if (!roleId) return; |