70 lines
2.4 KiB
JavaScript
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'
|
|
});
|
|
}; |