oof
This commit is contained in:
@ -1,44 +1,42 @@
|
||||
import { getLevel } from "../admin";
|
||||
import logger from "../log.mjs";
|
||||
import { getLevel } from "../../inc/admin.mjs";
|
||||
|
||||
const parseArgs = msg => {
|
||||
let args = msg.trim().split(" ");
|
||||
let cmd = args.shift();
|
||||
let args = msg.trim().split(" ")
|
||||
, cmd = args.shift();
|
||||
return {
|
||||
cmd: cmd.replace(/^(\.|\/|\!)/, ""),
|
||||
args: args
|
||||
};
|
||||
};
|
||||
|
||||
export default self => {
|
||||
self.bot.on("message", e => {
|
||||
for (var [name, trigger] of self._trigger.entries()) {
|
||||
if (!trigger.call.exec(e.message))
|
||||
continue;
|
||||
if (!trigger.clients.includes(e.type))
|
||||
continue;
|
||||
export default async bot => {
|
||||
|
||||
/*let active = false;
|
||||
if (e.type === "irc" && cfg.trigger[e.network + e.channel]) {
|
||||
if (cfg.trigger[e.network + e.channel].val[trigger.name])
|
||||
active = true;
|
||||
}
|
||||
else
|
||||
active = trigger.active;*/
|
||||
return [{
|
||||
name: "message",
|
||||
listener: "message",
|
||||
f: e => {
|
||||
logger.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`);
|
||||
|
||||
//if (!active)
|
||||
// continue;
|
||||
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")
|
||||
);
|
||||
|
||||
if ((e.self.set !== "all" && e.self.set !== trigger.set) && trigger.set !== "all")
|
||||
continue;
|
||||
|
||||
if (trigger.level > getLevel(e.network, e.user)) {
|
||||
e.reply(`no permission, min level ${trigger.level} required`);
|
||||
break;
|
||||
}
|
||||
|
||||
e = Object.assign(e, parseArgs(e.message));
|
||||
trigger.f(e);
|
||||
trigger.forEach(async t => {
|
||||
try {
|
||||
await t[1].f({ ...e, ...parseArgs(e.message) });
|
||||
console.log(`triggered > ${t[0]}`);
|
||||
}
|
||||
catch(error) {
|
||||
e.reply(`${t[0]}: An error occured.`);
|
||||
logger.error(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${error.toString ? error : JSON.stringify(error)}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
console.info(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${e.message}`);
|
||||
});
|
||||
};
|
||||
}];
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user