51 lines
1.7 KiB
JavaScript
Executable file
51 lines
1.7 KiB
JavaScript
Executable file
import * as index from '../index.js' // Not used in the code, but may be used by users of the command
|
|
import { getMessage } from '../util/lang.js'
|
|
import { inspect } from 'node:util'
|
|
import settings from '../settings.js'
|
|
import chatlog from '../util/chatlog.js'
|
|
|
|
const execute = (c) => {
|
|
const payload = c.args.join(' ')
|
|
if (!settings.disableLogging && !settings.disableEvalLogging) chatlog(`eval`, `${c.host}:${c.port} ${c.username} (${c.uuid}) Payload: ${payload}`)
|
|
try {
|
|
const result = inspect(eval(payload))
|
|
if (!settings.disableLogging && !settings.disableEvalLogging) chatlog(`eval`, `${c.host}:${c.port} ${c.username} (${c.uuid}) Result: ${result}`)
|
|
} catch (e){
|
|
if (!settings.disableLogging && !settings.disableEvalLogging) chatlog(`eval`, `${c.host}:${c.port} ${c.username} (${c.uuid}) Error: ${inspect(e)}`)
|
|
}
|
|
if (c.type === 'console') {
|
|
console.log(result)
|
|
} else {
|
|
c.reply({
|
|
translate: '%s: %s',
|
|
color: c.colors.primary,
|
|
with: [
|
|
{
|
|
text: getMessage(c.lang, 'command.eval.output'),
|
|
color: c.colors.secondary
|
|
},
|
|
{
|
|
text: result + '',
|
|
color: c.colors.primary,
|
|
clickEvent: {
|
|
action: 'copy_to_clipboard',
|
|
value: result + ''
|
|
},
|
|
hoverEvent: {
|
|
action: 'show_text',
|
|
contents: {
|
|
text: getMessage(c.lang, 'copyText'),
|
|
color: c.colors.secondary
|
|
},
|
|
value: { // Added twice for backwards compatibility
|
|
text: getMessage(c.lang, 'copyText'),
|
|
color: c.colors.secondary
|
|
}
|
|
}
|
|
}
|
|
]
|
|
})
|
|
}
|
|
}
|
|
const level = 2
|
|
export { execute, level }
|