65 lines
No EOL
2.1 KiB
JavaScript
65 lines
No EOL
2.1 KiB
JavaScript
const { VM } = require('vm2')
|
|
const util = require('util')
|
|
const { stylize } = require('../util/eval_colors')
|
|
|
|
const options = {
|
|
timeout: 1000
|
|
}
|
|
let vm = new VM(options)
|
|
|
|
module.exports = {
|
|
name: 'evaljsvm2',
|
|
trustLevel: 1,
|
|
description:['old evaljs code'],
|
|
aliases:['evaljsold', 'evalvm2', 'evalold'],
|
|
execute (context) {
|
|
const source = context.source
|
|
const args = context.arguments
|
|
const bot = context.bot
|
|
const ChatMessage = require('prismarine-chat')(bot.options.version)
|
|
|
|
const cmd = {
|
|
translate: '[%s] ',
|
|
bold: false,
|
|
color: 'white',
|
|
with: [
|
|
{ color: 'dark_green', text: 'EvalJS Cmd'},
|
|
]
|
|
}
|
|
|
|
// throw new CommandError('temp disabled')
|
|
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
|
switch (args[1]) {
|
|
case 'run':
|
|
try {
|
|
const output = vm.run(args.slice(2).join(' '))
|
|
if (!bot.options.Core.enabled){
|
|
bot.chat(ChatMessage.fromNotch([cmd, { text: util.inspect(output, { stylize }) }]).toMotd().replaceAll('§', '&'))
|
|
}else
|
|
source.sendFeedback([cmd, { text: util.inspect(output, { stylize }) }])
|
|
} catch (e) {
|
|
if(!bot.options.Core.enabled){
|
|
bot.chat(ChatMessage.fromNotch([cmd, { text: e.stack, color: 'black' }]).toMotd().replaceAll('§', '&'))
|
|
}else{
|
|
source.sendFeedback([cmd, { text: e.stack, color: 'black' }])
|
|
}
|
|
}
|
|
break
|
|
case 'reset':
|
|
vm = new VM(options)
|
|
if(!bot.options.Core.enabled){
|
|
bot.chat(ChatMessage.fromNotch([cmd, { text: 'Successfully reset the eval context', color: 'green' }]).toMotd().replaceAll('§', '&'))
|
|
}else{
|
|
source.sendFeedback([cmd, { text: 'Successfully reset the eval context', color: 'green' }])
|
|
}
|
|
break
|
|
default:
|
|
if(!bot.options.Core.enabled){
|
|
bot.chat(ChatMessage.fromNotch([cmd, { text: 'Invalid option!', color: 'dark_red' }]).toMotd().replaceAll('§', '&'))
|
|
}else{
|
|
source.sendFeedback([cmd, { text: 'Invalid option!', color: 'dark_red' }])
|
|
|
|
}
|
|
}
|
|
}
|
|
} |