From: pk910 Date: Sun, 1 Jul 2012 15:10:38 +0000 (+0200) Subject: use modeBuffer in recover_chan function and call it when someone ops a bot on a channel X-Git-Tag: v5.4~12 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=3b9fba5f65c4592ad94ea74342a527a31403e230 use modeBuffer in recover_chan function and call it when someone ops a bot on a channel --- diff --git a/src/modules/NeonBackup.mod/bot_NeonBackup.c b/src/modules/NeonBackup.mod/bot_NeonBackup.c index 19cffbd..6cabdda 100644 --- a/src/modules/NeonBackup.mod/bot_NeonBackup.c +++ b/src/modules/NeonBackup.mod/bot_NeonBackup.c @@ -136,11 +136,14 @@ void neonbackup_recover_chan(struct ChanNode *chan) { if(!bot) //no opped bots present... channel can't be recovered return; struct ClientSocket *target; + struct ModeBuffer *modeBuf; + modeBuf = initModeBuffer(bot, chan); for(target = getBots(SOCKET_FLAG_READY, NULL); target; target = getBots(SOCKET_FLAG_READY, target)) { if((target->flags & SOCKET_FLAG_REQUEST_OP) && (chanuser = getChanUser(target->user, chan)) && !(chanuser->flags & CHANUSERFLAG_OPPED)) { - putsock(bot, "MODE %s +o %s", chan->name, target->user->nick); + modeBufferOp(modeBuf, target->user->nick); } } + freeModeBuffer(modeBuf); } static void neonbackup_event_join(struct ChanUser *chanuser) { diff --git a/src/modules/NeonServ.mod/event_neonserv_mode.c b/src/modules/NeonServ.mod/event_neonserv_mode.c index 56696cb..4ec84c5 100644 --- a/src/modules/NeonServ.mod/event_neonserv_mode.c +++ b/src/modules/NeonServ.mod/event_neonserv_mode.c @@ -131,6 +131,10 @@ static void neonserv_event_mode_async1(struct ClientSocket *client, struct UserN //someone deopped the bot??? if(!neonserv_cmd_mode_botwar_detect(client, user, chan, &botwar_detect_executed)) requestOp(client->user, chan); + } else if(modes[i] == 'o' && add && isBot(cuser)) { + //someone opped a bot + if(!neonserv_cmd_mode_botwar_detect(client, user, chan, &botwar_detect_executed)) + module_neonbackup_recover_chan(chan); } if((modes[i] == 'o' || (modes[i] == 'h' && !with_halfops)) && !(add && isBot(cuser))) { if(uaccess < db_canop) {