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