69 lines
2.1 KiB
JavaScript
Executable file
69 lines
2.1 KiB
JavaScript
Executable file
import { createInterface, cursorTo, clearLine } from 'node:readline'
|
|
import settings from '../settings.js'
|
|
import cmds from '../util/commands.js'
|
|
import { bots } from '../index.js'
|
|
import Command from '../util/Command.js'
|
|
import parse2 from '../util/chatparse_console.js'
|
|
import { userInfo } from 'node:os'
|
|
|
|
const consoleBotStub = {
|
|
host: {
|
|
host: 'bot console ',
|
|
port: 3
|
|
},
|
|
tellraw: (_unused, data) => console.log(parse2(data))
|
|
}
|
|
const uuid = '4d616465-6c69-6e65-2075-7775203a3300'
|
|
const user = userInfo().username // OS user the bot is running as
|
|
const nick = 'console'
|
|
|
|
const rl = createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout,
|
|
prompt: '\x1b[0m> '
|
|
})
|
|
rl.on('line', (l) => {
|
|
try {
|
|
if (cmds[l.split(' ')[0].toLowerCase()]) {
|
|
if (cmds[l.split(' ')[0].toLowerCase()].consoleIndex) {
|
|
const tmpcmd = l.split(' ')
|
|
const index2 = tmpcmd.splice(1, 1)[0]
|
|
if (index2 === '*') {
|
|
for (let i = 0; i < index.bots.length; i++) {
|
|
const cmd = new Command(uuid, user, nick, tmpcmd.join(' '), 'console', 'console', 'console', '', bots[i], 2, {})
|
|
cmds[l.split(' ')[0].toLowerCase()].execute(cmd)
|
|
}
|
|
} else {
|
|
const cmd = new Command(uuid, user, nick, tmpcmd.join(' '), 'console', 'console', 'console', '', bots[+index2], 2, {})
|
|
cmds[l.split(' ')[0].toLowerCase()].execute(cmd)
|
|
}
|
|
} else {
|
|
const cmd = new Command(uuid, user, nick, l, 'console', 'console', 'console', '', consoleBotStub, 2, {})
|
|
cmds[l.split(' ')[0].toLowerCase()].execute(cmd)
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
rl.prompt(false)
|
|
})
|
|
rl.prompt()
|
|
|
|
function consoleWrite (text) {
|
|
cursorTo(process.stdout, 0)
|
|
clearLine(process.stdout, 0)
|
|
process.stdout.write(text + '\n')
|
|
rl.prompt(true)
|
|
}
|
|
export default function load (b) {
|
|
b.info = (msg) => {
|
|
consoleWrite(`[${b.id}] [info] ${msg}`)
|
|
}
|
|
b.displayChat = (type, subtype, msg) => {
|
|
if (settings.displaySubtypesToConsole) {
|
|
consoleWrite(`[${b.id}] [${type}] [${subtype}] ${msg}`)
|
|
} else {
|
|
consoleWrite(`[${b.id}] [${type}] ${msg}`)
|
|
}
|
|
}
|
|
}
|