Uwev2/src/inc/events/message.mjs
2019-08-19 19:22:52 +00:00

43 lines
1.1 KiB
JavaScript

import logger from "../log";
import { getLevel } from "../../inc/admin";
const parseArgs = msg => {
let args = msg.trim().split(" ")
, cmd = args.shift();
return {
cmd: cmd.replace(/^(\.|\/|\!)/, ""),
args: args
};
};
export default async bot => {
return [{
name: "message",
listener: "message",
f: e => {
logger.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`);
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 {
await t[1].f({ ...e, ...parseArgs(e.message) });
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)}`);
}
});
}
}];
};