diff --git a/commands/help.js b/commands/help.js index 26d4098..526e0a4 100644 --- a/commands/help.js +++ b/commands/help.js @@ -53,10 +53,22 @@ module.exports = { if (command.alias.toString() !== '') { alias = command.alias.join(', '); } + + const usage = []; + if (typeof command.usage === 'string') { + usage.push({text: `${prefix}${command.name} `, color: 'gold'}); + usage.push({text: command.usage, color: 'aqua'}); + } else { + command.usage.forEach((value) => { + usage.push({text: `${prefix}${command.name} `, color: 'gold'}); + usage.push({text: `${value}\n`, color: 'aqua'}); + }); + } + bot.tellraw('@a', [{text: prefix + command.name, color: 'gold'}, {text: ` (${alias})`, color: 'white'}, {text: ' - ', color: 'gray'}, {text: command.description, color: 'gray'}]); bot.tellraw('@a', [{text: 'Trust level: ', color: 'green'}, {text: command.trusted, color: 'yellow'}]); bot.tellraw('@a', [{text: 'Supported on Discord: ', color: 'green'}, {text: discordSupported, color: 'gold'}]); - bot.tellraw('@a', [{text: prefix + command.name, color: 'gold'}, {text: ' ' + command.usage, color: 'aqua'}]); + bot.tellraw('@a', usage); } if (command.name === args[0]) run(); diff --git a/index.js b/index.js index bb7927f..163a0e9 100644 --- a/index.js +++ b/index.js @@ -23,12 +23,12 @@ const {VM} = require('vm2'); const randomstring = require('randomstring'); const mineflayer = require('mineflayer'); // readline > fix on console.log -const log = console.log; -console.log = function() { - rl.output.write('\x1b[2K\r'); - log.apply(console, Array.prototype.slice.call(arguments)); - rl._refreshLine(); -}; +// const log = console.log; +// console.log = function() { +// rl.output.write('\x1b[2K\r'); +// log.apply(console, Array.prototype.slice.call(arguments)); +// rl._refreshLine(); +// }; // Load discord.js const { @@ -76,7 +76,7 @@ async function botThings() { /** * Main bot function */ -function main() { +async function main() { const channel = dcclient.channels.cache.get(config.discord.servers[process.argv[2]]); module.exports = bot; @@ -85,7 +85,7 @@ function main() { bot.getplayerusername = {}; bot.once('end', (reason, event) => { - console.log( + bot.console.info( `Disconnected from ${bot.options.host} (${event} event): ${util.inspect(reason)}`, ); channel.send(`Disconnected: \`${util.inspect(reason)}\``); @@ -101,7 +101,7 @@ function main() { ) timeout = 1000 * 7; } } catch (e) { - console.log(e); + bot.console.error(e); } setTimeout(() => { @@ -111,15 +111,18 @@ function main() { }, timeout); }); - console.log(`Connecting to: ${bot.options.host}:${bot.options.port}...`); + await sleep(1000); + + bot.console.info(`Connecting to: ${bot.options.host}:${bot.options.port}...`); channel.send(`Connecting to: \`${bot.options.host}:${bot.options.port}\`...`); + console.log(bot._client); bot._client.on('login', async function(data) { bot.entityId = data.entityId; bot.uuid = bot._client.uuid; bot.username = bot._client.username; chatMessage = require('prismarine-chat')(bot.version); const mcData = require('minecraft-data')(bot.version); - console.log( + bot.console.info( `Successfully logged in to: ${bot.options.host}:${bot.options.port}`, ); channel.send( @@ -208,7 +211,7 @@ function main() { bot._client.on('error', function() {}); process.on('uncaughtException', (error) => { - console.log('uncaught ' + util.inspect(error)); + console.error('uncaught ' + util.inspect(error)); channel.send('uncaught ```\n' + util.inspect(error) + '\n```'); bot.emit('end', 'uncaughtException', 'process: uncaughtException'); }); diff --git a/plugins/chat.js b/plugins/chat.js index 68534db..69d38b1 100644 --- a/plugins/chat.js +++ b/plugins/chat.js @@ -17,7 +17,7 @@ function inject(bot) { bot.write('chat', {message: bot.chatQueue[0].substring(0, 256)}); bot.chatQueue.shift(); } catch (e) { - console.log(e.message); + bot.console.error(e); } } } catch (e) { diff --git a/plugins/console.js b/plugins/console.js index 9fa46ef..51d0aa3 100644 --- a/plugins/console.js +++ b/plugins/console.js @@ -1,20 +1,35 @@ +/* eslint-disable max-len */ /* eslint-disable prefer-rest-params */ +const moment = require('moment-timezone'); function inject(bot, dcclient, config, rl) { if (!config.console) return; + const chatMessage = require('prismarine-chat')(bot.version); + + function prefix(prefix, _message) { + const message = `[${moment().format('HH:mm:ss')} ${prefix}§r] [${bot.options.host}] ${_message}`; + const component = chatMessage.MessageBuilder.fromString(message).toJSON(); + return chatMessage.fromNotch(component).toAnsi(); + } + + bot.console = {}; + bot.console.log = function(message) { + console.log(prefix('&6LOG', message)); + }; + bot.console.info = function(message) { + console.log(prefix('&aINFO', message)); + }; + bot.console.error = function(message) { + console.log(prefix('&cERROR', message)); + }; + bot.consoleQueue = []; const consoleQueueInterval = setInterval(function() { if (!bot.messageLogging) return; if (bot.consoleQueue.length > 50) bot.consoleQueue = []; if (bot.consoleQueue[0] || bot.consoleQueue[0] === '') { - console.log( - '\u001b[48:5:208m' + - bot.options.host + - '\u001b[0m' + - ': ' + - bot.consoleQueue[0].substring(0, 10000), - ); + bot.console.log(bot.consoleQueue[0].substring(0, 10000)); bot.consoleQueue.shift(); } }, 100); @@ -35,7 +50,6 @@ function inject(bot, dcclient, config, rl) { log.apply(console, Array.prototype.slice.call(arguments)); rl._refreshLine(); }; - const {MessageBuilder} = require('prismarine-chat')('1.18.2'); rl.on('line', function(line) { try { if (line.toLowerCase() === '' || @@ -73,10 +87,10 @@ function inject(bot, dcclient, config, rl) { if (line === '.kill') process.exit(); if (line.startsWith('.')) { return bot.command_handler.run( - 'Console', - '§a§lConsole§r', + bot.username, + bot.username, '*' + line.substring(1), - 'c0ns0le-uuid', + bot.uuid, ); } bot.tellraw('@a', [ @@ -100,9 +114,11 @@ function inject(bot, dcclient, config, rl) { text: '\u203a ', color: 'dark_gray', }, - MessageBuilder.fromString('&7' + line), + chatMessage.MessageBuilder.fromString('&7' + line), ]); - } catch (e) {} + } catch (e) { + bot.console.error(e); + } }); }; diff --git a/plugins/core.js b/plugins/core.js index 15cb67d..dbec4c5 100644 --- a/plugins/core.js +++ b/plugins/core.js @@ -90,9 +90,7 @@ function inject(bot, dcclient, config) { }); fillCore(); - } catch (e) { - return; - } + } catch (e) {} }, // fillCore(useCore) { // const fillCommand = `/minecraft:fill ${core.start.x} ${core.start.y} ${core.start.z} ${core.end.x} ${core.end.y} ${core.end.z} command_block{CustomName:'{"text":"ChomeNS Bot Core","color":"yellow"}'}`;