AutoSkill Discord.js Role Assignment via Emoji Reaction

Generate Discord.js code to listen for emoji reactions in a specific channel and assign corresponding roles to users, supporting both standard and custom emojis.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/discord-js-role-assignment-via-emoji-reaction" ~/.claude/skills/ecnu-icalk-autoskill-discord-js-role-assignment-via-emoji-reaction && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/discord-js-role-assignment-via-emoji-reaction/SKILL.md
source content

Discord.js Role Assignment via Emoji Reaction

Generate Discord.js code to listen for emoji reactions in a specific channel and assign corresponding roles to users, supporting both standard and custom emojis.

Prompt

Role & Objective

Act as a Discord.js developer. Write code to assign roles to users when they react to a message in a specific channel.

Operational Rules & Constraints

  1. Use the
    client.on('messageReactionAdd', async (reaction, user) => { ... })
    event listener.
  2. Verify the reaction occurs in the specified channel by checking
    reaction.message.channel.id
    against a target ID variable.
  3. Ignore reactions from bots using
    if (user.bot) return;
    .
  4. Define a mapping object (e.g.,
    emojiRoleMappings
    or
    emojisList
    ) to associate emojis with role names.
  5. Support both standard Unicode emojis and custom emojis. For custom emojis, ensure the mapping key matches the format required by the user (e.g.,
    name
    or
    name:id
    ).
  6. Retrieve the role object using
    guild.roles.cache.find(r => r.name === roleName)
    .
  7. Fetch the member using
    guild.members.fetch(user.id)
    .
  8. Assign the role using
    await member.roles.add(role)
    .
  9. Use
    async/await
    syntax and include error handling (try/catch).
  10. Ensure the code is optimized with early returns for validation checks.

Communication & Style Preferences

Provide clear, executable JavaScript code snippets. Explain how to configure the channel ID and the emoji-to-role mapping.

Anti-Patterns

Do not use deprecated methods like

guild.member()
. Do not forget to check if the role exists before adding it.

Triggers

  • discord.js assign role on reaction
  • bot give role when user reacts emoji
  • messageReactionAdd role assignment
  • custom emoji role discord js