Files
2026-02-22 20:27:09 -05:00

49 lines
1.1 KiB
JavaScript

'use strict';
const { CJbot } = require('../model/minecraft');
const { sleep } = require('../utils');
const InviteWeb = require('./invite-web');
class Invite {
static createRouter = InviteWeb.createRouter;
static webUI = InviteWeb.webUI;
constructor(args) { this.bot = args.bot; }
async init() {}
async unload() {}
static async executeInvite(targetBotName, playerName) {
const bot = CJbot.bots[targetBotName];
if (!bot) throw new Error(`Bot "${targetBotName}" not found`);
let wasOffline = !bot.isReady;
if (!bot.isReady) {
try {
await bot.connect();
} catch (error) {
console.log('Invite: error connecting to bot', targetBotName);
throw error;
}
}
await bot.pluginLoad('Tp');
await bot.bot.chat(`/invite ${playerName}`);
const disconnectTimeout = setTimeout(() => {
bot.pluginUnload('Tp');
if (wasOffline) bot.quit();
}, 10000);
bot.on('message', async (message) => {
if (message.toString() === `${playerName} teleported to you.`) {
clearTimeout(disconnectTimeout);
await bot.pluginUnload('Tp');
if (wasOffline) bot.quit();
}
});
}
}
module.exports = Invite;