const mineflayer = require('mineflayer'); const autoVersionForge = require('minecraft-protocol-forge').autoVersionForge; const fs = require('fs'); const servers = fs.readFileSync('dregora.txt', 'utf-8') .split('\n') .map(line => line.trim()) .filter(Boolean); const results = []; function checkServer(server, callback) { const [host, portStr] = server.split(':'); const port = parseInt(portStr, 10) || 25565; const bot = mineflayer.createBot({ host, port, auth: 'microsoft', version: false }); autoVersionForge(bot._client, fs.readFileSync('dregora.json')); let finished = false; bot.on('spawn', () => { if (!finished) { results.push(`${server} ✓`); bot.quit(); finished = true; callback(); } }); bot.on('kicked', (reason) => { if (!finished) { results.push(`${server} X (Kicked: ${reason})`); finished = true; callback(); } }); bot.on('error', (err) => { if (!finished) { results.push(`${server} X (Error: ${err.message})`); finished = true; callback(); } }); setTimeout(() => { if (!finished) { results.push(`${server} X (Timeout)`); if (typeof bot.quit === 'function') bot.quit(); finished = true; callback(); } }, 15000); } function checkAllServers(index = 0) { if (index >= servers.length) { fs.writeFileSync('dregora_RESULTS.txt', results.join('\n')); console.log('Done! Results written to dregora_RESULTS.txt'); return; } checkServer(servers[index], () => { setTimeout(() => { checkAllServers(index + 1); }, 5000); }); } checkAllServers();