DragonBot

Reaction Roles Manager

This document explains how to use the Reaction Roles Manager (implemented via the /reaction command with subcommands), expected formats for emoji, examples, and a manual test checklist for maintainers.

Command overview

The bot exposes a single admin command: /reaction with subcommands:

Notes on emoji formats

Examples and notes for custom emoji

Permissions & common failure modes (troubleshooting)

Behavior

Manual test checklist

  1. Setup
    • Ensure the bot has the following permissions in the guild and target channel: Add Reactions, Read Message History, View Channel, Manage Roles (to assign roles).
    • Ensure the bot’s role is above the target role in the server’s role hierarchy.
  2. Create a mapping
    • In a test server, pick a message and run /reaction create channel:#some-channel message_id:123456789012345678 emoji:✅ role:@Member.
    • The command should reply with a mapping id.
    • Inspect the message — the emoji should be present (bot attempted to add it).
  3. React as a non-admin user
    • Click the reaction on the message.
    • The user should receive the role configured in the mapping.
    • Remove the reaction; the role should be removed.
  4. List mappings
    • Run /reaction list and confirm the mapping is present with the _id, channel, message id, emoji, and role mention.
  5. Delete mapping
    • Use /reaction delete id:<mappingId> and confirm it returns success.
    • Confirm /reaction list no longer shows the mapping.
  6. Edge cases to verify manually
    • Invalid emoji: try emoji:doesnotexist — the command should still create a mapping (it stores the string) but the bot may not be able to react; document limitations.
    • Role removed from guild: delete the role in the server, then attempt to react — the handler should not throw. If mappings remain, consider cleaning them up.
    • Message deleted: delete the target message and then react elsewhere; handler should silently ignore missing messageId mappings.

message_content usage (create_message subcommand)

Usage examples

Below are copy-paste examples you can run in a server where the bot is installed (admin required).

Screenshot placeholders (optional):

Create mapping example placeholder

Add a screenshot above named create_mapping_example.png into docs/images/ to show an example UI.

Suggested follow-ups (to mark feature as complete)

Quick manual checklist