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' }); };