module.exports = (lib) => { lib.trigger.add({ name: 'trigger', call: /^!trigger/i, level: 100, active: 1, func: (e) => { var args = e.message.split(' '); lib.getcfg('trigger', cb => { if(!cb) cb = lib.genStdTrigger(); switch(args[1]) { case "std": e.reply(JSON.stringify(lib.genStdTrigger())); break; case "toggle": if(trigger = args[2].toLowerCase()) { cb = triggertoggle(cb, trigger); writecfg('trigger', e.network+e.channel, JSON.stringify(cb), cbwc => { if(!cbwc) { e.reply("trigger "+ trigger +" in channel "+e.channel.getName() + lib.bot.format.get(cb[trigger]?'green':'red')+" "+(cb[trigger]?"activated":"deactivated")); lib.getChanTrigger(); } else e.reply(cbwc); }); } break; default: var output = ""; e.reply("Trigger in "+e.channel.getName()+" (green: activated, red: deactivated):"); for(var key in cb) output += lib.bot.format.get(cb[key]?'green':'red')+" "+key; e.reply(output); break; } }, e.network+e.channel); }, desc: 'muh' }); var triggertoggle = (trigger, key) => { if(key in trigger) trigger[key] = !trigger[key]; return trigger; }; var writecfg = (kat, key, value, cb) => { lib.sql.query("select * from `f0ck`.`cfg` where `class` = ? && `key` = ? limit 1", [kat, key], (err, rows) => { if(rows.length > 0) { lib.sql.query("update `f0ck`.`cfg` set `value` = ? where `class` = ? && `key` = ?", [value, kat, key], (err) => { if(cb) cb(err); }); } else { lib.sql.query("insert into `f0ck`.`cfg` (`class`,`key`,`value`,`type`) values (?,?,?,?)", [kat, key, value, 'json'], (err) => { if(cb) cb(err); }); } }); }; };