import logger from "../log"; import { cfg } from "../cfg"; import { getLevel } from "../../inc/admin"; const parseArgs = (msg) => { let args = msg.trim().split(" "); let cmd = args.shift(); return { cmd: cmd.replace(/^(\.|\/|\!)/, ""), args: args }; }; export default async bot => { return [{ name: "message", listener: "message", f: e => { const trigger = [...bot._trigger.entries()].filter(t => t[1].call.exec(e.message) && t[1].clients.includes(e.type) && t[1].active && t[1].level <= getLevel(e.network, e.user).level && !((e.self.set !== "all" && e.self.set !== t[1].set) && t[1].set !== "all") ); trigger.forEach(async t => { try { e = { ...e, ...parseArgs(e.message) }; await t[1].f(e); console.log(`triggered > ${t[0]}`); } catch(error) { e.reply("An error occured."); logger.error(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${error.toString ? error : JSON.stringify(error)}`); } }); logger.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`); } }]; };