80 lines
2.1 KiB
JavaScript
Executable file
80 lines
2.1 KiB
JavaScript
Executable file
const m = require("minecraft-protocol")
|
|
const settings = require("./settings.json")
|
|
const generateUser = require("./util/usergen.js")
|
|
const secret = require(settings.secret)
|
|
const EventEmitter = require("node:events")
|
|
const crypto = require("crypto")
|
|
const fs=require("fs")
|
|
|
|
module.exports.bot=[];
|
|
|
|
const loadplug = (botno) => {
|
|
const botplug = []
|
|
const bpl = fs.readdirSync('plugins')
|
|
for (const i in bpl) {
|
|
if (!bpl[i].endsWith('.js')) {
|
|
continue
|
|
}
|
|
try {
|
|
botplug.push(require(`./plugins/${bpl[i]}`))
|
|
} catch (e) { console.log(e) }
|
|
}
|
|
botplug.forEach((plug) => {
|
|
try {
|
|
if (botno !== undefined) {
|
|
if (plug.loadBot) {
|
|
plug.loadBot(module.exports.bot[botno])
|
|
}
|
|
} else {
|
|
plug.load()
|
|
}
|
|
} catch (e) { console.log(e) }
|
|
})
|
|
}
|
|
loadplug()
|
|
|
|
const createBot = function createBot(host,oldId){
|
|
const bot = new EventEmitter();
|
|
bot._client = m.createClient({
|
|
host: host.host,
|
|
port: host.port ? host.port : 25565,
|
|
username: generateUser(host.options.legalName),
|
|
version: settings.version_mc
|
|
})
|
|
bot._client.on("success",()=>{
|
|
//console.log(bot);
|
|
})
|
|
if(typeof oldId !== "undefined"){
|
|
for(const i in module.exports.bot[oldId].interval){
|
|
clearInterval(module.exports.bot[oldId].interval[i]);
|
|
}
|
|
delete module.exports.bot[oldId];
|
|
bot.id=oldId;
|
|
module.exports.bot[oldId]=bot;
|
|
console.log("Re-creating bot "+bot.id)
|
|
} else {
|
|
bot.id=module.exports.bot.length;
|
|
module.exports.bot.push(bot);
|
|
console.log("Creating bot "+bot.id)
|
|
}
|
|
|
|
bot.host=host;
|
|
bot.interval={};
|
|
|
|
bot.info=(msg)=>{
|
|
console.log(`[${bot.id}] [info] ${msg}`)
|
|
}
|
|
/*bot.error=(msg){
|
|
console.log(`[${bot.id}] [error] ${msg}`)
|
|
}*/
|
|
loadplug(bot.id);
|
|
bot._client.on("error",(err)=>{
|
|
console.log(err)
|
|
})
|
|
}
|
|
|
|
|
|
for(const i in settings.servers){
|
|
createBot(settings.servers[i]);
|
|
}
|
|
module.exports.createBot = createBot;
|