From 7f91d6e17da11c3f814d8c6d0383ad71d853a9cd Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 7 Apr 2026 17:29:47 +0000 Subject: [PATCH] Add Task #98: Discord Server Channel Automation - Bot command to auto-create category + 4 channels per server - Includes delete command for server retirement - QoL improvement for Holly - Updated backlog with new task (MEDIUM priority) Chronicler #66 --- BACKLOG.md | 7 +- .../task-098-discord-channel-automation.md | 128 ++++++++++++++++++ 2 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 docs/tasks/task-098-discord-channel-automation.md diff --git a/BACKLOG.md b/BACKLOG.md index 7dae71f..258466d 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -29,6 +29,7 @@ Operational improvements and infrastructure hardening. | 40 | World Backup Automation | Data protection | | 22 | Netdata Deployment | System monitoring on all servers | | 92 | Desktop MCP + Dispatch | Architecture done, Buffer MCP added. Blocked on hardware (Pi) | +| 98 | Discord Server Channel Automation | Bot command to auto-create category + 4 channels per server. QoL for Holly. | | — | Brand Guidelines PDF Review | Upload from Chromebook, add fonts | --- @@ -146,12 +147,12 @@ These tasks are no longer relevant due to architecture changes: | Priority | Count | |----------|-------| | HIGH | 4 | -| MEDIUM | 7 | +| MEDIUM | 8 | | LOW | 11 | | PERSONAL | 7 | | BLOCKED | 1 | -| WISH LIST | 1 | -| **TOTAL ACTIVE** | **31** | +| WISH LIST | 2 | +| **TOTAL ACTIVE** | **33** | --- diff --git a/docs/tasks/task-098-discord-channel-automation.md b/docs/tasks/task-098-discord-channel-automation.md new file mode 100644 index 0000000..ef578ae --- /dev/null +++ b/docs/tasks/task-098-discord-channel-automation.md @@ -0,0 +1,128 @@ +# Task #98: Discord Server Channel Automation + +**Created:** April 7, 2026 +**Created By:** Chronicler #66 +**Owner:** Holly (primary beneficiary), Michael (implementation) +**Priority:** MEDIUM +**Status:** Backlog + +--- + +## Problem + +When a new Minecraft server is added, Holly must manually create: +1. A category named after the server +2. Text channel: `chat` +3. Text channel: `in-game-chat` +4. Forum channel: `forum` +5. Voice channel: `voice` +6. Set permissions on all channels +7. Position everything under the Servers category + +With 20 servers, this is 100+ manual actions. Each new server adds 5 more. + +--- + +## Solution + +Automate Discord channel creation via the Discord API. + +**Trigger options (pick one):** + +| Option | Trigger | Complexity | +|--------|---------|------------| +| A | Bot command: `!createserver "Stoneblock 4"` | Low | +| B | Trinity Console button when adding server | Medium | +| C | Automatic when server added to Pterodactyl | High | + +**Recommendation:** Start with **Option A** (bot command) — fastest to implement, Holly can use immediately. + +--- + +## Technical Requirements + +**Discord Bot Permissions Needed:** +- Manage Channels +- Manage Roles (if setting permissions) + +**Arbiter already has a Discord bot** — just needs these permissions granted in Discord server settings. + +**API Endpoints:** +- `POST /guilds/{guild.id}/channels` — Create channel +- `PATCH /channels/{channel.id}` — Modify channel (position, permissions) +- `DELETE /channels/{channel.id}` — Delete channel (for retirement) + +**Channel Types:** +- `0` = Text (chat, in-game-chat) +- `2` = Voice +- `4` = Category +- `15` = Forum + +--- + +## Implementation Outline + +```javascript +// Pseudocode for !createserver command +async function createServerChannels(serverName) { + const guild = /* get guild */; + const serversCategory = /* find "Servers" category */; + + // 1. Create category for this server + const category = await guild.channels.create({ + name: serverName, + type: 4, // Category + parent: serversCategory.id + }); + + // 2. Create channels under category + const channels = [ + { name: 'chat', type: 0 }, + { name: 'in-game-chat', type: 0 }, + { name: 'forum', type: 15 }, + { name: 'voice', type: 2 } + ]; + + for (const ch of channels) { + await guild.channels.create({ + name: ch.name, + type: ch.type, + parent: category.id + }); + } + + return `Created ${serverName} with 4 channels`; +} +``` + +--- + +## Future Enhancements + +1. **Delete command:** `!deleteserver "Stoneblock 4"` — removes category and all channels when server retired *(confirmed needed)* +2. **Discord-Minecraft integration:** `in-game-chat` channel planned to connect to Minecraft via a mod (e.g., Discord Integration, dclink, or similar Forge/NeoForge mod) +3. **Permission templates:** Auto-apply role permissions (subscribers only, etc.) +4. **Trinity Console integration:** Button in admin panel instead of bot command + +--- + +## Acceptance Criteria + +- [ ] Holly can type `!createserver "Server Name"` in Discord +- [ ] Bot creates category + 4 channels with correct types +- [ ] Channels appear under the Servers category +- [ ] Permissions match existing manual setup +- [ ] `!deleteserver "Server Name"` removes all channels (stretch goal) + +--- + +## Notes + +- All 4 channels have the same permissions (confirmed by Michael) +- Delete command confirmed needed for server retirement +- `in-game-chat` Discord-Minecraft integration is planned (needs Forge/NeoForge mod, not plugin) +- This is a quality-of-life improvement for Holly, not a launch blocker + +--- + +**Fire + Frost + Foundation = Where Love Builds Legacy** 🔥❄️