109
services/arbiter-3.0/scripts/add-delserver-docs.js
Normal file
109
services/arbiter-3.0/scripts/add-delserver-docs.js
Normal file
@@ -0,0 +1,109 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Add /delserver documentation to #staff-commands
|
||||
*
|
||||
* Created: April 8, 2026
|
||||
* Chronicler: #71
|
||||
*/
|
||||
|
||||
require('dotenv').config({ path: '/opt/arbiter-3.0/.env' });
|
||||
const { Client, GatewayIntentBits, ChannelType, EmbedBuilder } = require('discord.js');
|
||||
|
||||
async function main() {
|
||||
console.log('📋 Adding /delserver to #staff-commands');
|
||||
console.log('=======================================');
|
||||
|
||||
const client = new Client({
|
||||
intents: [GatewayIntentBits.Guilds]
|
||||
});
|
||||
|
||||
try {
|
||||
await client.login(process.env.DISCORD_BOT_TOKEN);
|
||||
await new Promise(resolve => {
|
||||
if (client.isReady()) resolve();
|
||||
else client.once('ready', resolve);
|
||||
});
|
||||
console.log(`✅ Logged in as ${client.user.tag}`);
|
||||
|
||||
const guild = client.guilds.cache.get(process.env.GUILD_ID);
|
||||
await guild.channels.fetch();
|
||||
|
||||
// Find #staff-commands
|
||||
const channel = guild.channels.cache.find(
|
||||
ch => ch.name === 'staff-commands'
|
||||
);
|
||||
|
||||
if (!channel) {
|
||||
console.log('❌ #staff-commands not found!');
|
||||
return;
|
||||
}
|
||||
console.log(`✅ Found: #${channel.name}`);
|
||||
|
||||
// /delserver command embed
|
||||
const delServerEmbed = new EmbedBuilder()
|
||||
.setColor(0xDC3545) // Red for danger/delete
|
||||
.setTitle('🗑️ /delserver')
|
||||
.setDescription('Permanently deletes a server setup including all channels and the role.')
|
||||
.addFields(
|
||||
{
|
||||
name: '👥 Who Can Use',
|
||||
value: 'Staff, Moderators, Trinity only',
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: '📍 Where to Use',
|
||||
value: 'Any channel',
|
||||
inline: true
|
||||
},
|
||||
{
|
||||
name: '📝 Usage',
|
||||
value: '```/delserver name:Server Name confirm:True```',
|
||||
inline: false
|
||||
},
|
||||
{
|
||||
name: '⚠️ Preview Mode',
|
||||
value: `Running without \`confirm:True\` shows a preview:
|
||||
\`\`\`/delserver name:Server Name\`\`\`
|
||||
This lists what would be deleted without actually deleting anything.`,
|
||||
inline: false
|
||||
},
|
||||
{
|
||||
name: '🗑️ What It Deletes',
|
||||
value: `• All channels in the category (chat, in-game, forum, voice)
|
||||
• The category itself
|
||||
• The server role`,
|
||||
inline: false
|
||||
},
|
||||
{
|
||||
name: '📋 After Running',
|
||||
value: `Don't forget to:
|
||||
|
||||
1. Remove the reaction emoji from <#1403980899464384572>
|
||||
2. Remove the role mapping from Carl-bot`,
|
||||
inline: false
|
||||
},
|
||||
{
|
||||
name: '💡 Notes',
|
||||
value: `• Always preview first before confirming
|
||||
• Give players at least 7 days notice before deleting
|
||||
• This is permanent — there is no undo
|
||||
• Forum posts and messages are lost forever`,
|
||||
inline: false
|
||||
}
|
||||
)
|
||||
.setFooter({ text: 'The Arbiter • Firefrost Gaming' });
|
||||
|
||||
await channel.send({ embeds: [delServerEmbed] });
|
||||
console.log('✅ Posted /delserver documentation');
|
||||
|
||||
console.log('');
|
||||
console.log('✅ Done! Don\'t forget to pin it.');
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ ERROR:', error.message);
|
||||
} finally {
|
||||
client.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user