From f6862e4bd0342587fdae912e22bc4ff8302bd512 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 10 Apr 2026 15:33:17 +0000 Subject: [PATCH] task: #107 Discord Server Status Embeds Auto-post and update server status in each game server's chat channel. Queries Pterodactyl API, posts Discord embed, updates on schedule. 15 server channels mapped. Chronicler #75 --- .../task-107-discord-server-status.md | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 docs/tasks-index/task-107-discord-server-status.md diff --git a/docs/tasks-index/task-107-discord-server-status.md b/docs/tasks-index/task-107-discord-server-status.md new file mode 100644 index 0000000..94e497e --- /dev/null +++ b/docs/tasks-index/task-107-discord-server-status.md @@ -0,0 +1,76 @@ +--- +task_number: 107 +title: Discord Server Status Embeds +status: Planned +priority: P2-Medium +is_blocker: false +owner: Michael +tags: + - arbiter + - discord + - automation +estimated_hours: 4 +--- + +# Task #107: Discord Server Status Embeds + +## Overview + +Auto-post and update server status embeds in each game server's Discord chat channel. Status shows online/offline, player count, and server info. + +## Requirements + +- Query Pterodactyl API for server status +- Post embed to each server's `-chat` channel +- Update embed every 5-10 minutes (edit, not new message) +- Store message IDs in database to enable editing +- Handle servers that are offline gracefully + +## Target Channels + +| Server | Channel ID | +|--------|------------| +| Stoneblock 4 | 1491030845106946241 | +| Society: Sunlit Valley | 1491031870383853638 | +| ATM10: To the Sky | 1491051103251599360 | +| All the Mons | 1491051785006223520 | +| Mythcraft 5 | 1491052926289051839 | +| Beyond Depth | 1491480196405268643 | +| Beyond Ascension | 1491480214730047639 | +| Otherworld | 1491480234225307752 | +| DeceasedCraft | 1491480255720853697 | +| Submerged 2 | 1491480274582896811 | +| Sneak's Pirate Pack | 1491480294300061886 | +| Cottage Witch | 1491480328982761592 | +| Farm Crossing 5 | 1491480347572179027 | +| Homestead | 1491480370506367126 | +| Wold's Vaults | 1491481401176887356 | + +## Embed Format + +``` +🟢 SERVER ONLINE (or 🔴 OFFLINE) +━━━━━━━━━━━━━━━━ +Players: 3/20 +Version: 1.20.1 +IP: servername.firefrostgaming.com +Last Updated: 5 min ago +``` + +## Implementation Notes + +- New file: `services/arbiter-3.0/src/services/serverStatusPoller.js` +- Database table: `discord_status_messages` (server_id, channel_id, message_id) +- Cron job or setInterval in Arbiter main +- Use Pterodactyl API: `GET /api/client/servers/{id}/resources` + +## Dependencies + +- Pterodactyl API key (already in .env) +- Discord bot token (already in .env) +- Server ID → Channel ID mapping (can use existing channel naming convention) + +## Links + +- Pterodactyl API docs: https://dashflo.net/docs/api/pterodactyl/v1/ +- Discord embed docs: https://discord.com/developers/docs/resources/message#embed-object