|
const mineflayer = require('mineflayer'); |
|
const fs = require('fs'); |
|
const pathfinder = require('mineflayer-pathfinder').pathfinder; |
|
const { GoalNear } = require('mineflayer-pathfinder').goals; |
|
|
|
const config = { |
|
host: "minegens.id", |
|
port: 25565, |
|
version: "1.20.1" |
|
}; |
|
|
|
|
|
const botAccounts = [ |
|
|
|
|
|
|
|
{ username: "KuroYamiis", password: "KuroID991", command: "/afk" }, |
|
]; |
|
|
|
const databaseFile = 'database.json'; |
|
let userDatabase = {}; |
|
|
|
if (fs.existsSync(databaseFile)) { |
|
userDatabase = JSON.parse(fs.readFileSync(databaseFile, 'utf8')); |
|
} |
|
|
|
function createBot(account, delay) { |
|
setTimeout(() => { |
|
const bot = mineflayer.createBot({ |
|
host: config.host, |
|
port: config.port, |
|
username: account.username, |
|
version: config.version, |
|
}); |
|
|
|
bot.loadPlugin(pathfinder); |
|
|
|
bot.once('login', () => { |
|
console.log(`Bot ${bot.username} berhasil masuk`); |
|
}); |
|
|
|
bot.once('spawn', () => { |
|
console.log(`Bot ${bot.username} telah spawn`); |
|
|
|
setTimeout(() => { |
|
if (!userDatabase[account.username]) { |
|
bot.chat(`/register ${account.password}`); |
|
userDatabase[account.username] = true; |
|
fs.writeFileSync(databaseFile, JSON.stringify(userDatabase, null, 2)); |
|
console.log(`Mendaftarkan akun ${account.username}`); |
|
} else { |
|
bot.chat(`/login ${account.password}`); |
|
console.log(`Login sebagai ${account.username}`); |
|
} |
|
}, 5000); |
|
|
|
setTimeout(() => { |
|
bot.chat('/server tycoon'); |
|
console.log(`Bot ${account.username} masuk ke realm Tycoon`); |
|
}, 10000); |
|
|
|
setTimeout(() => { |
|
bot.chat(`${account.command}`); |
|
console.log(`Bot ${account.username} command ${account.command}`); |
|
}, 17000); |
|
|
|
setTimeout(() => { |
|
bot.chat('/spin'); |
|
console.log(`Bot ${account.username} Berputar`); |
|
}, 19000); |
|
|
|
const messages = [ |
|
"ヽ(・∀・)ノ", |
|
"(^▽^)", |
|
"(*^‿^*)", |
|
"(≧◡≦)", |
|
"(⁀ᗢ⁀)", |
|
"╰(°▽°)╯", |
|
"(✿◕‿◕)", |
|
"(o^▽^o)", |
|
"(。♥‿♥。)", |
|
"(~‾▿‾)~" |
|
]; |
|
|
|
function getRandomMessage() { |
|
return messages[Math.floor(Math.random() * messages.length)]; |
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
bot.on('message', (message) => { |
|
const text = message.toAnsi(); |
|
if (!text.includes("Level Progress:") && !text.includes("Next Rewards in")) { |
|
console.log(`Bot ${bot.username} | ${text}`); |
|
} |
|
}); |
|
|
|
bot.once('kicked', (reason) => { |
|
console.log(`Bot ${bot.username} dikeluarkan: ${reason}`); |
|
reconnect(bot, account); |
|
}); |
|
|
|
bot.once('error', (err) => { |
|
console.error(`Terjadi kesalahan pada ${bot.username}: ${err}`); |
|
reconnect(bot, account); |
|
}); |
|
|
|
bot.once('death', () => { |
|
console.log(`Bot ${bot.username} mati, respawning...`); |
|
setTimeout(() => bot.chat('/respawn'), 5000); |
|
}); |
|
}, delay); |
|
} |
|
|
|
function reconnect(bot, account) { |
|
console.log(`Bot ${account.username} mencoba untuk masuk kembali...`); |
|
bot.end(); |
|
setTimeout(() => createBot(account, 5000), 5000); |
|
} |
|
|
|
|
|
botAccounts.forEach((account, index) => { |
|
createBot(account, index * 60000); |
|
}); |
|
|