Files
PingMe/README.md
T
2026-06-27 11:32:25 -05:00

88 lines
1.7 KiB
Markdown

# 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:<message id>
/pingme help
```
## Production
Build and run compiled JavaScript:
```bash
npm run build
npm start
```