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
This commit is contained in:
@@ -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** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
128
docs/tasks/task-098-discord-channel-automation.md
Normal file
128
docs/tasks/task-098-discord-channel-automation.md
Normal file
@@ -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** 🔥❄️
|
||||
Reference in New Issue
Block a user