owobot/plugins/command.js

64 lines
1.9 KiB
JavaScript
Raw Normal View History

const Command = require('../util/Command.js')
const settings = require('../settings.json')
2024-08-12 05:13:32 -04:00
const { getMessage } = require('../util/lang.js')
const cmds = require('../util/commands.js')
const fs = require('fs')
2024-08-12 05:13:32 -04:00
if (!fs.readdirSync('.').includes('userPref') && !settings.userSettingsDisabled) fs.mkdirSync('userPref')
2024-08-12 05:13:32 -04:00
const loadSettings = function (uuid) {
2024-08-12 05:13:32 -04:00
try {
2024-08-25 22:29:39 -04:00
if (settings.userSettingsDisabled) {
return {}
} else {
return require(`../userPref/${uuid}.json`)
}
2024-08-12 05:13:32 -04:00
} catch (e) {
return {}
}
2024-07-27 02:39:18 -04:00
}
module.exports = {
2024-08-12 05:13:32 -04:00
load: (b) => {
b.prefix = settings.prefix
b.lastCmd = 0
2024-08-25 22:29:39 -04:00
b.on('chat', (data) => {
2024-08-25 22:13:46 -04:00
const fullCommand = data.message
for (const prefix of b.prefix) {
if (fullCommand.startsWith(prefix)) {
const command = fullCommand.slice(prefix.length)
b.runCommand(data.username, data.nickname, data.uuid, command, data.type, prefix)
}
}
})
b.runCommand = (name, nickname, uuid, text, msgType, prefix) => {
if (uuid === '00000000-0000-0000-0000-000000000000') return
if (Date.now() - b.lastCmd <= 1000) return
const userSettings = loadSettings(uuid)
b.lastCmd = Date.now()
const lang = settings.defaultLang
2024-09-11 01:35:15 -04:00
const commandClass = new Command(uuid, name, nickname, text, msgType, prefix, b, userSettings);
2024-09-11 01:35:15 -04:00
b.emit("command",commandClass)
if(commandClass.cancel === true) return
if (cmds[commandClass.cmdName.toLowerCase()]) {
try {
cmds[commandClass.cmdName.toLowerCase()].execute(commandClass)
} catch (e) {
console.log(e)
b.tellraw(uuid, {
text: getMessage(lang, 'command.error'),
color: 'red',
hoverEvent: {
action: 'show_text',
value: {
text: e.stack
}
2024-07-27 02:39:18 -04:00
}
})
2024-07-27 02:39:18 -04:00
}
}
}
2024-08-12 05:13:32 -04:00
}
2024-07-27 02:39:18 -04:00
}