# Ping Me Minimal Discord reaction-role bot with a guided embed setup wizard. ## Features - `/pingme create` step-by-step setup wizard - One editable wizard message with Back/Next/Cancel controls - Button role menus with optional emoji - Reaction role menus with emoji - Single-select mode: selecting a new option removes the previous configured role - Multi-select mode: users can hold multiple configured roles - Persistent Postgres storage ## Setup 1. Install dependencies: ```bash npm install ``` 2. Copy environment file: ```bash cp .env.example .env ``` 3. Create a Postgres database and fill in: - `DISCORD_TOKEN` - `DISCORD_CLIENT_ID` - `DATABASE_URL` (for example, `postgres://postgres:postgres@localhost:5432/pingme`) - optional `DISCORD_GUILD_ID` for instant dev command registration The bot creates the required Postgres table and indexes on startup. 4. If you have existing `data/pingme.json` state, migrate it once: ```bash npm run migrate:json-to-postgres # or choose a file explicitly: npm run migrate:json-to-postgres -- ./data/pingme.json ``` 5. Register slash commands: ```bash npm run register ``` 6. Start the bot: ```bash npm run dev ``` ## Required Bot Permissions Give the bot these permissions in servers where it is used: - Manage Roles - Send Messages - Embed Links - Add Reactions - Read Message History - Use External Emojis, if using external/custom emoji The bot can only assign roles below its highest role. ## Commands ```text /pingme create /pingme list /pingme delete message_id: /pingme help ``` ## Production Build and run compiled JavaScript: ```bash npm run build npm start ```