summaryrefslogtreecommitdiff
path: root/packages/gateway
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gateway')
-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;