Long-term fix for mobile task index - task numbers now in frontmatter. Numbers added from BACKLOG.md cross-reference: #2 rank-system-deployment #3 fire-frost-holdings-restructuring #14 vaultwarden-ssh-setup #22 netdata-deployment #23 department-structure #26 modpack-version-checker #32 terraria-branding-training-arc #35 pokerole-wikijs-deployment #36 notebooklm-integration #40 world-backup-automation #44 nc1-node-usage-stats #45 steam-and-state-server #48 n8n-rebuild #51 ignis-protocol #55 discord-invite-setup #65 claude-infrastructure-access #67 nc1-security-monitoring #82 plane-decommissioning #87 arbiter-2-1-cancellation-flow #89 staff-portal-consolidation #90 decap-tasks-collection #91 server-matrix-node-fix #92 desktop-mcp #93 trinity-codex #94 global-restart-scheduler #98 discord-channel-automation #99 claude-projects-architecture Chronicler #69
5.1 KiB
task_number, status, priority, owner, created
| task_number | status | priority | owner | created |
|---|---|---|---|---|
| 98 | open | P2 | Holly | 2026-04-07 |
Task #98: Discord Server Channel Automation
Created: April 7, 2026
Created By: Chronicler #66
Owner: Holly (primary beneficiary), Michael (implementation)
Priority: MEDIUM
Status: Backlog
task_number: 98
Problem
When a new Minecraft server is added, Holly must manually create:
- A category named after the server
- Text channel:
chat - Text channel:
in-game-chat - Forum channel:
forum - Voice channel:
voice - Set permissions on all channels
- Position everything under the Servers category
- Create a server role for reaction-role assignment
- Add reaction emoji to the role selection message
With 20 servers, this is 100+ manual actions. Each new server adds 7 more.
task_number: 98
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.
task_number: 98
Technical Requirements
Discord Bot Permissions Needed:
- Manage Channels
- Manage Roles
- Add Reactions (for role selection message)
Arbiter already has a Discord bot — just needs these permissions granted in Discord server settings.
API Endpoints:
POST /guilds/{guild.id}/channels— Create channelPATCH /channels/{channel.id}— Modify channel (position, permissions)DELETE /channels/{channel.id}— Delete channel (for retirement)POST /guilds/{guild.id}/roles— Create roleDELETE /guilds/{guild.id}/roles/{role.id}— Delete role (for retirement)PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me— Add reaction to role selection message
Channel Types:
0= Text (chat, in-game-chat)2= Voice4= Category15= Forum
task_number: 98
Implementation Outline
// Pseudocode for !createserver command
async function createServerChannels(serverName, emoji) {
const guild = /* get guild */;
const serversCategory = /* find "Servers" category */;
const roleSelectionChannelId = /* role selection channel */;
const roleSelectionMessageId = /* the reaction role message */;
// 1. Create role for this server
const role = await guild.roles.create({
name: serverName,
mentionable: true,
reason: `Server role for ${serverName}`
});
// 2. Create category for this server
const category = await guild.channels.create({
name: serverName,
type: 4, // Category
parent: serversCategory.id
});
// 3. 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
});
}
// 4. Add reaction to role selection message
const roleChannel = await guild.channels.fetch(roleSelectionChannelId);
const roleMessage = await roleChannel.messages.fetch(roleSelectionMessageId);
await roleMessage.react(emoji);
// 5. Configure reaction role bot (Carl-bot API or manual step)
// Note: May require manual mapping in bot dashboard
return `Created ${serverName}: role + category + 4 channels + reaction`;
}
Command syntax:
!createserver "Stoneblock 4" 🪨
!deleteserver "Stoneblock 4"
task_number: 98
Future Enhancements
- Discord-Minecraft integration:
in-game-chatchannel planned to connect to Minecraft via a mod (e.g., Discord Integration, dclink, or similar Forge/NeoForge mod) - Permission templates: Auto-apply role permissions (subscribers only, etc.)
- Trinity Console integration: Button in admin panel instead of bot command
- Carl-bot API integration: Auto-configure reaction role mapping (if API available)
task_number: 98
Acceptance Criteria
- Holly can type
!createserver "Server Name" 🎮in Discord - Bot creates server role with matching name
- Bot creates category + 4 channels with correct types
- Channels appear under the Servers category
- Bot adds emoji reaction to role selection message
- Permissions match existing manual setup
!deleteserver "Server Name"removes role + all channels
task_number: 98
Notes
- All 4 channels have the same permissions (confirmed by Michael)
- Delete command removes both role AND channels for server retirement
in-game-chatDiscord-Minecraft integration is planned (needs Forge/NeoForge mod, not plugin)- Carl-bot reaction role mapping may still require manual step in dashboard unless API is available
- Role selection message location: TBD (needs channel ID and message ID configured)
- This is a quality-of-life improvement for Holly, not a launch blocker
task_number: 98
Fire + Frost + Foundation = Where Love Builds Legacy 🔥❄️