- Create/delete server roles alongside channels - Add reaction to role selection message - Updated command syntax: !createserver "Name" 🎮 - Delete command now removes role + channels Chronicler #66
4.9 KiB
4.9 KiB
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:
- 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.
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
- 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
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"
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)
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
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
Fire + Frost + Foundation = Where Love Builds Legacy 🔥❄️