+
+static int neonserv_cmd_mode_botwar_detect(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan) {
+ struct ChanUser *chanuser = getChanUser(user, chan);
+ if(!chanuser) return 0; //flying super cow?
+ if(time(0) - chanuser->changeTime > BOTWAR_DETECTION_TIME) {
+ chanuser->changeTime = time(0);
+ chanuser->chageEvents = 1;
+ } else {
+ if(!botwar_detect_executed)
+ chanuser->chageEvents++;
+ botwar_detect_executed = 1;
+ if(chanuser->chageEvents >= BOTWAR_DETECTION_EVENTS || chanuser->chageEvents < 0) {
+ //BOTWAR!
+ chanuser->changeTime = time(0);
+ if(chanuser->chageEvents > 0) {
+ putsock(client, "NOTICE @%s :%s %s", chan->name, get_language_string(user, "NS_BOTWAR_DETECTED"), (BOTWAR_ALERT_CHAN ? get_language_string(user, "NS_BOTWAR_REPORTED") : ""));
+ if(BOTWAR_ALERT_CHAN) {
+ struct ChanNode *alertchan = getChanByName(BOTWAR_ALERT_CHAN);
+ struct ClientSocket *alertclient;
+ if(alertchan && (alertclient = getBotForChannel(chan)) != NULL) {
+ char msgBuf[MAXLEN];
+ putsock(alertclient, "PRIVMSG %s :%s", alertchan->name, build_language_string(NULL, msgBuf, "NS_BOTWAR_ALERT", chan->name, user->nick));
+ }
+ }
+ }
+ chanuser->chageEvents = -2;
+ return 1;
+ }
+ }
+ return 0;
+}
+