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_id to 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_reminder cog enabled
Checks if now.hour == send_hour and now.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
Anti-spam
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) |
Required Configuration
channel_id must be set in the dashboard. Without it, the cog won't send reminders (either automatically or via /duel send).
Timezone
timezone_offset: 2 means UTC+2 (Central European Summer Time). Change to 1 in winter (CET) or adjust for your server's timezone.