require('dotenv').config(); const { Client, GatewayIntentBits, PermissionsBitField } = require('discord.js'); async function generateInvite() { const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, ], }); try { await client.login(process.env.BOT_TOKEN); const invite = client.generateInvite({ scopes: ['bot', 'applications.commands'], permissions: [ // Basic Discord permissions PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.SendMessagesInThreads, PermissionsBitField.Flags.EmbedLinks, PermissionsBitField.Flags.AttachFiles, PermissionsBitField.Flags.ReadMessageHistory, PermissionsBitField.Flags.UseExternalEmojis, PermissionsBitField.Flags.AddReactions, // Application commands (slash commands) PermissionsBitField.Flags.UseApplicationCommands, // Message management for bot maintenance PermissionsBitField.Flags.ManageMessages, // Channel management for notifications setup PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.ManageChannels, // Advanced features PermissionsBitField.Flags.CreatePublicThreads, PermissionsBitField.Flags.CreatePrivateThreads, PermissionsBitField.Flags.UseExternalStickers, // Voice permissions (if needed for future features) PermissionsBitField.Flags.Connect, PermissionsBitField.Flags.Speak, ] }); console.log('\nšŸ¤– ===== VRBattles Discord Bot Invite Generator ===== šŸ¤–'); console.log('\nšŸ“Š Current Bot Status:'); console.log(`Name: ${client.user.tag}`); console.log(`ID: ${client.user.id}`); console.log(`Created: ${client.user.createdAt.toDateString()}`); console.log('\nšŸ  Current Servers:'); if (client.guilds.cache.size === 0) { console.log('āŒ Bot is not in any servers yet'); } else { console.log(`āœ… Bot is active in ${client.guilds.cache.size} server(s):`); client.guilds.cache.forEach(guild => { console.log(` šŸŽ® ${guild.name} (${guild.memberCount} members) - ID: ${guild.id}`); }); } console.log('\nšŸ”— ===== Bot Invite Link ===== šŸ”—'); console.log('Copy and share this link to invite VRBattles Bot to any Discord server:'); console.log('\n' + invite + '\n'); console.log('šŸŽÆ ===== Bot Features ===== šŸŽÆ'); console.log('āœ… Interactive Help System (/help)'); console.log('āœ… Player Search (/finduser)'); console.log('āœ… Team Search (/findteam) with pagination'); console.log('āœ… Match History (/matchhistory)'); console.log('āœ… Game Subscriptions (/subscribe, /unsubscribe)'); console.log('āœ… Server Registration (/register_server)'); console.log('āœ… Real-time Match Notifications'); console.log('āœ… Dynamic Autocomplete'); console.log('\nāš™ļø ===== Permissions Included ===== āš™ļø'); console.log('āœ… View Channels & Send Messages'); console.log('āœ… Slash Commands Support'); console.log('āœ… Embed Links & File Attachments'); console.log('āœ… Message & Channel Management'); console.log('āœ… Emoji & Reaction Support'); console.log('āœ… Thread Management'); console.log('āœ… Voice Channel Access (future features)'); console.log('\nšŸš€ ===== Setup Instructions ===== šŸš€'); console.log('1. šŸ”— Click the invite link above'); console.log('2. šŸ  Select your Discord server from the dropdown'); console.log('3. āœ… Keep ALL permissions checked (required for full functionality)'); console.log('4. šŸŽ‰ Click "Authorize" to add the bot'); console.log('\nšŸ“ ===== After Adding the Bot ===== šŸ“'); console.log('1. šŸ’¬ Run /help to see all available commands'); console.log('2. šŸ”§ Run /register_server to connect your server'); console.log('3. šŸŽ® Run /subscribe to set up game notifications'); console.log('4. šŸ” Try /finduser to search for players!'); console.log('\nšŸ”§ ===== Admin Setup (Channel IDs) ===== šŸ”§'); console.log('To get Discord Channel IDs for notifications:'); console.log('1. Enable Developer Mode: User Settings > App Settings > Advanced > Developer Mode'); console.log('2. Right-click any text channel > Copy ID'); console.log('3. Use the ID in /subscribe command'); console.log('\nšŸ“š ===== Documentation ===== šŸ“š'); console.log('Full documentation: https://help.vrbattles.gg'); console.log('VRBattles website: https://www.vrbattles.gg'); console.log('\n✨ VRBattles Discord Bot is ready to enhance your VR gaming community! ✨\n'); } catch (error) { console.error('āŒ Error generating invite:', error); if (error.code === 'TOKEN_INVALID') { console.error('\nšŸ”‘ Invalid bot token. Please check your .env file and ensure BOT_TOKEN is set correctly.'); } } finally { client.destroy(); } } generateInvite().catch(console.error);