prevent errors during initialization

This commit is contained in:
Flummi 2018-03-01 08:39:09 +01:00
parent a225922753
commit a4e347bcdc
2 changed files with 71 additions and 78 deletions

View File

@ -13,6 +13,10 @@ const parseArgs = (msg) => {
export default self => { export default self => {
self.bot.on("message", e => { self.bot.on("message", e => {
for (var [name, trigger] of self._trigger.entries()) { for (var [name, trigger] of self._trigger.entries()) {
if (!e.self.me.nickname) {
e.reply("nope, still initialising myself :^)");
break;
}
if (!trigger.call.exec(e.message)) if (!trigger.call.exec(e.message))
continue; continue;
if (!trigger.clients.includes(e.type)) if (!trigger.clients.includes(e.type))

View File

@ -4,52 +4,58 @@ import { getLevel, loadAdmins } from "../admin";
export default bot => { export default bot => {
bot._trigger.set("join", new bot.trigger({ bot._trigger.set("join", new bot.trigger({
call: /^\!join .*/i, call: /^\!join .*/i,
active: false,
level: 100, level: 100,
clients: ["irc"], clients: ["irc"],
f: e => { f: e => {
if(e.self.me.nickname.toLowerCase() === e.args.shift().toLowerCase()) {
const chans = e.args.filter(chan => chan.charAt(0) === "#"); const chans = e.args.filter(chan => chan.charAt(0) === "#");
chans.map(e.join); chans.map(e.join);
e.reply(`joined channel${chans.length > 1 ? "s" : null}: ${chans.join(", ")}`); e.reply(`joined channel${chans.length > 1 ? "s" : ""}: ${chans.join(", ")}`);
}
} }
})); }));
bot._trigger.set("part", new bot.trigger({ bot._trigger.set("part", new bot.trigger({
call: /^\!part .*/i, call: /^\!part .*/i,
active: false,
level: 100, level: 100,
clients: ["irc"], clients: ["irc"],
f: e => { f: e => {
if(e.self.me.nickname.toLowerCase() === e.args.shift().toLowerCase()) {
const chans = e.args.filter(chan => chan.charAt(0) === "#"); const chans = e.args.filter(chan => chan.charAt(0) === "#");
chans.map(e.part); chans.map(e.part);
e.reply(`parted channel${chans.length > 1 ? "s" : null}: ${chans.join(", ")}`); e.reply(`parted channel${chans.length > 1 ? "s" : ""}: ${chans.join(", ")}`);
}
} }
})); }));
bot._trigger.set("nick", new bot.trigger({ bot._trigger.set("nick", new bot.trigger({
call: /^\!nick .*/i, call: /^\!nick .*/i,
active: false,
level: 100, level: 100,
clients: ["irc"], clients: ["irc"],
f: e => { f: e => {
if(e.self.me.nickname.toLowerCase() === e.args.shift().toLowerCase()) {
e.write(`NICK ${e.args[0]}`); e.write(`NICK ${e.args[0]}`);
e._user.deli(e.self.me.nickname); e._user.deli(e.self.me.nickname);
e.whois(e.args[0]); e.whois(e.args[0]);
e.reply(`changed nick to ${e.args[0]}`); e.reply(`changed nick to ${e.args[0]}`);
} }
}
})); }));
bot._trigger.set("level", new bot.trigger({ bot._trigger.set("level", new bot.trigger({
call: /^\!level/i, call: /^\!level .*/i,
active: false,
level: 0, level: 0,
active: false,
clients: ["irc"], clients: ["irc"],
f: e => { f: e => {
const args = e.message.split(' '); if(e.self.me.nickname.toLowerCase() === e.args.shift().toLowerCase()) {
if (Number.isInteger(parseInt(args[2]))) { //const args = e.message.split(' ');
e.message = e.args.join("");
console.log(e.message);
if (Number.isInteger(parseInt(e.args[2]))) {
if (e.user.level.level >= 100) { if (e.user.level.level >= 100) {
const name = args[1].replace('@', ''); const name = e.args[1].replace('@', '');
const level = Math.min(Math.max(0, args[2]), 100); const level = Math.min(Math.max(0, e.args[2]), 100);
//if (name.toLowerCase() != bot.me.toLowerCase()) { //if (name.toLowerCase() != bot.me.toLowerCase()) {
if (e._user.hasi(name)) { if (e._user.hasi(name)) {
@ -62,52 +68,35 @@ export default bot => {
.then(rows => { .then(rows => {
loadAdmins(); loadAdmins();
return e.reply(`deleted user ${user.nickname}`); return e.reply(`deleted user ${user.nickname}`);
}) }).catch(err => console.log("delete", err))
.catch(err => {
console.log("delete", err);
})
} }
else if(level !== userlevel) { else if(level !== userlevel) {
sql.any("update admins set level = ? where account = ? and network = ?", [level, user.account, e.network]) sql.any("update admins set level = ? where account = ? and network = ?", [level, user.account, e.network])
.then(rows => { .then(rows => {
loadAdmins(); loadAdmins();
return e.reply(`changed user [b]${user.nickname}[/b] (${userlevel} -> ${level})`); return e.reply(`changed user [b]${user.nickname}[/b] (${userlevel} -> ${level})`);
}) }).catch(err => console.log("update", err))
.catch(err => {
console.log("update", err);
})
} }
else { else
return e.reply("no changes"); return e.reply("no changes");
} }
}
else { else {
sql.any("insert into admins (prefix, account, level, network) values (lower(?), lower(?), ?, lower(?))", [user.prefix, user.account, level, e.network]) sql.any("insert into admins (prefix, account, level, network) values (lower(?), lower(?), ?, lower(?))", [user.prefix, user.account, level, e.network])
.then(rows => { .then(rows => {
loadAdmins(); loadAdmins();
return e.reply(`added new user [b]${user.nickname}[/b] with level ${level}`); return e.reply(`added new user [b]${user.nickname}[/b] with level ${level}`);
}) }).catch(err => console.log("add", err))
.catch(err => {
console.log("add", err);
})
} }
} }
else { else
return e.reply(`user [b]${name}[/b] isn't registered`); return e.reply(`user [b]${name}[/b] isn't registered`);
} }
} else
else {
return e.reply(`user not found`); return e.reply(`user not found`);
} }
//} else
//else {
// return e.reply(`f0ck you hard`);
//}
}
else {
return e.reply("no permission, min level 100 required"); return e.reply("no permission, min level 100 required");
} }
}
else { else {
let user = (!(user = e.message.match(/^\!level(?: +@(.*))?/i)[1])) ? e.user.nick : user.trim(); let user = (!(user = e.message.match(/^\!level(?: +@(.*))?/i)[1])) ? e.user.nick : user.trim();
if(e._user.hasi(user)) { if(e._user.hasi(user)) {
@ -117,7 +106,7 @@ export default bot => {
else else
e.reply(`user not found`); e.reply(`user not found`);
} }
}
} }
})); }));
}; };