f0ckv1/src/trigger/level.js
2016-09-07 11:03:13 +00:00

70 lines
2.4 KiB
JavaScript

module.exports = (bot, trigger, lib) => {
trigger.add({
name: 'level',
call: /^\!level(?: +\@.*)?/i,
level: 0,
active: 1,
func: (e, userlevel) => {
var args = e.message.split(' ');
if(Number.isInteger(parseInt(args[2]))) {
if(userlevel >= 100) {
var name = args[1].replace('@','');
var level = (args[2]>=100)?100:args[2];
if( name in e.channel.names ) {
lib.getUser( { network: e.network, user: { getNick: () => { return name.trim(); } }, channel: { names: e.channel.names } }, cb => {
var host = cb.username+'@'+cb.hostname;
if( host in lib.admins ) {
if(level <= 0) {
lib.sql.query('delete from `f0ck`.`user` where `id` = ? limit 1', [lib.admins[host].id], () => {
lib.loadUser();
e.reply('deleted user '+cb.nick+' ('+host+')');
});
}
else {
lib.sql.query('update `f0ck`.`user` set `level` = ? where `id` = ?', [level, lib.admins[host].id], () => {
lib.loadUser();
e.reply('changed user '+cb.nick+' ('+host+') to level '+level);
});
}
}
else {
lib.sql.query('insert into `f0ck`.`user` (`nick`,`vhost`,`level`,`server`) values (?,?,?,?)', [cb.nick, host, level, e.network], () => {
lib.loadUser();
e.reply('added new user '+cb.nick+' ('+host+') with level '+level);
});
}
});
}
else
e.reply('user '+name+' not found');
}
else
e.reply('no permission, min level 100 required');
}
else {
var user, etmp;
if(user = e.message.match(/^\!level(?: +@(.*))?/i)[1]) {
etmp = {
network: e.network,
user: {
getNick: () => {
return user.trim();
}
},
channel: {
names: e.channel.names
}
};
}
else
etmp = e;
lib.getUserlevel(etmp, (cb) => {
e.reply("level from "+etmp.user.getNick()+": "+cb.level+" (Channel: "+cb.channel+" DB: "+cb.db+")");
});
}
},
desc: 'get Userlevel'
});
};