Files
f0ckv2/src/inc/events/message.mjs
2023-04-28 07:04:06 +02:00

51 lines
1.2 KiB
JavaScript

import logger from "../log.mjs";
import { getLevel } from "../../inc/admin.mjs";
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}`);
let trigger;
if(e.media) {
trigger = [...bot._trigger.entries()].filter(t => t[1].name === "parser");
if(!e.message)
e.message = "";
} else {
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.user).level
);
}
trigger.forEach(async t => {
try {
await t[1].f({ ...e, ...parseArgs(e.message) });
console.log(`triggered > ${t[0]}`);
}
catch(err) {
console.error(err);
await e.reply(`${t[0]}: An error occured.`);
logger.error(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${err.toString ? err : JSON.stringify(err)}`);
}
});
}
}];
};