Duel Reminder
Daily duel strategy reminders for Dark War Survival. The bot sends an embed at the configured time with a template specific to the current day of the week. Before sending a new message, it deletes yesterday's.
Commands
/duel send
Manually sends today's duel reminder (for testing or first use).
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | — |
Permissions: Server Administrator
Example: /duel send
Success:
- Deletes the previous reminder message (if exists)
- Sends today's template to the configured channel
- Saves
last_message_idto configuration - Ephemeral confirmation "✅ Duel reminder sent!"
Errors:
- Missing administrator permissions
- Channel not configured
- No template for today
- Bot doesn't have permission to write in the channel
/duel preview
Preview of today's reminder template without sending to the channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | — |
Permissions: Everyone — response is ephemeral
Example: /duel preview
Success: Ephemeral embed with today's template (content + embed)
Errors:
- No template for today
Automatic Sending
The bot checks every minute if it's time to send a reminder:
- Iterates through all servers with the
duel_remindercog enabled - Checks if
now.hour == send_hourandnow.minute == send_minute(in the server's timezone) - Checks if it hasn't already been sent today (deduplication)
- If conditions are met → calls
_send_daily_reminder
Send Behavior
- Deletes the previous message (
last_message_id) - Gets the template for today's day of the week
- Builds embed from template
- Sends to channel
- Saves new
last_message_id
Each day the channel has exactly one reminder message. The previous one is automatically deleted, keeping the channel clean.
Templates
Each day of the week has a separate template. The bot provides default templates in duel_templates.json, but they can be overridden in the dashboard.
Template Structure
{
"Monday": {
"content": "@everyone Today's duels!",
"embed": {
"title": "⚔️ Monday Strategy",
"description": "Today we fight...",
"color": "#E74C3C",
"image": "https://...",
"thumbnail": "https://...",
"footer": { "text": "Dark War Survival" },
"author": { "name": "Duel Master", "icon_url": "https://..." }
}
},
"Tuesday": { ... },
"Wednesday": { ... },
...
}
Template Priority
- Templates from
cog_settings.duel_reminder.templates(dashboard) — higher priority - Defaults from
duel_templates.json— fallback
Configuration
| Option | Description | Default Value |
|---|---|---|
channel_id | Channel for sending reminders | none (required) |
send_hour | Send hour (24h) | 8 |
send_minute | Send minute | 0 |
timezone_offset | UTC offset (e.g., 2 for CEST) | 2 |
last_message_id | Last sent message ID (auto) | null |
templates | Custom templates per day | null (use defaults) |
channel_id must be set in the dashboard. Without it, the cog won't send reminders (either automatically or via /duel send).
timezone_offset: 2 means UTC+2 (Central European Summer Time). Change to 1 in winter (CET) or adjust for your server's timezone.