summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-11-18 15:41:36 -0800
committerFuwn <[email protected]>2025-11-18 15:41:36 -0800
commit265dc1dda725f66b5b6bbca53fd25fcf6557ab12 (patch)
tree88d8bf1530eed9873591470a161c20617f4a2c03 /packages
parentfeat(gateway:roleplayThumbsUpReaction): Add subreddit moderator announcements... (diff)
downloadumabotdiscord-265dc1dda725f66b5b6bbca53fd25fcf6557ab12.tar.xz
umabotdiscord-265dc1dda725f66b5b6bbca53fd25fcf6557ab12.zip
feat(gateway:reactionRoles): Add additional handler
Diffstat (limited to 'packages')
-rw-r--r--packages/gateway/src/listeners/reactionRoles.ts37
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;