const express = require('express'); const http = require('http'); const socketIo = require('socket.io'); const path = require('path'); const Bot = require('./bots/bot'); const app = express(); const server = http.createServer(app); const io = socketIo(server); // Serve static files app.use(express.static('public')); // Store active bots const activeBots = new Map(); let botCounter = 0; // Random bot names const botNames = [ 'ShadowHunter', 'CyberNinja', 'PixelWarrior', 'NeonGhost', 'QuantumBot', 'StealthMiner', 'CrystalSeeker', 'VoidWalker', 'FireStorm', 'IceBreaker', 'ThunderStrike', 'MysticCrawler', 'DiamondDigger', 'RedstoneWiz', 'EnderBot', 'BlazeMaster', 'FrostByte', 'LaserEye', 'TechnoKnight', 'DigitalPhantom', 'CraftBot', 'BuildMaster', 'BlockBuster', 'MineCrusher', 'CaveExplorer', 'LavaWalker', 'SkyDancer', 'DeepMiner', 'SwiftRunner', 'SilentStrike', 'PowerDrill', 'MegaBuilder', 'UltraBot', 'HyperCraft', 'TurboMiner', 'AlphaBot', 'BetaStrike', 'GammaRay', 'DeltaForce', 'OmegaEnd', 'NightCrawler', 'DayBreaker', 'StarSeeker', 'MoonWalker', 'SunBlazer', 'IronFist', 'GoldRush', 'DiamondEdge', 'EmeraldEye', 'NetherBot' ]; const getRandomBotName = () => { const randomName = botNames[Math.floor(Math.random() * botNames.length)]; const randomNumber = Math.floor(Math.random() * 999) + 1; return `${randomName}${randomNumber}`; }; // Socket connection handling io.on('connection', (socket) => { console.log('🔥 Client connected:', socket.id); // Create initial bots socket.on('createBots', (data) => { const { count, serverIP, serverPort = 25565 } = data; for (let i = 0; i < count; i++) { createBot(serverIP, serverPort, socket); } }); // Create single bot socket.on('createSingleBot', (data) => { const { serverIP, serverPort = 25565 } = data; createBot(serverIP, serverPort, socket); }); // Control bot socket.on('controlBot', (data) => { const { botId, action, params } = data; const bot = activeBots.get(botId); if (bot) { bot.executeCommand(action, params); } }); // Remove bot socket.on('removeBot', (botId) => { const bot = activeBots.get(botId); if (bot) { bot.disconnect(); activeBots.delete(botId); socket.emit('botRemoved', botId); } }); // Get bot vision socket.on('getBotVision', (botId) => { const bot = activeBots.get(botId); if (bot) { bot.getVision(); } }); socket.on('disconnect', () => { console.log('❌ Client disconnected:', socket.id); }); }); function createBot(serverIP, serverPort, socket) { botCounter++; const botId = `bot_${botCounter}`; const botName = getRandomBotName(); try { const bot = new Bot(botId, botName, serverIP, serverPort, socket); activeBots.set(botId, bot); socket.emit('botCreated', { id: botId, name: botName, server: `${serverIP}:${serverPort}` }); } catch (error) { socket.emit('botError', { message: `Failed to create bot: ${error.message}` }); } } const PORT = process.env.PORT || 3000; server.listen(PORT, () => { console.log(`🚀 Server running on port ${PORT}`); console.log(`🔥 Open http://localhost:${PORT} to access the FIRE bot creator!`); });