added full half-op support
[NeonServV5.git] / src / event_neonserv_topic.c
index f696a80fabea1012fb3fafb0a59aaae723accda6..577e0a349d3a45beb2fe6fafa7a8f0d2b882eaa2 100644 (file)
@@ -1,3 +1,19 @@
+/* event_neonserv_topic.c - NeonServ v5.3
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License 
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. 
+ */
 
 struct neonserv_event_topic_cache {
     struct ClientSocket *client;
@@ -12,7 +28,7 @@ static void neonserv_event_topic_async1(struct ClientSocket *client, struct User
 static void neonserv_event_topic(struct UserNode *user, struct ChanNode *chan, const char *new_topic) {
     struct ClientSocket *client = getBotForChannel(chan);
     if(!client) return; //we can't "see" this event
-    if(user->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP)) return; 
+    if(isNetworkService(user)) return; 
     loadChannelSettings(chan);
     if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return;
     if(!(user->flags & USERFLAG_ISAUTHED)) {
@@ -74,13 +90,14 @@ static void neonserv_event_topic_async1(struct ClientSocket *client, struct User
                 //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);
+                    char *alertchan = get_string_field("General.alertchan");
+                    putsock(client, "NOTICE @%s :%s %s", chan->name, get_language_string(user, "NS_BOTWAR_DETECTED"), (alertchan ? get_language_string(user, "NS_BOTWAR_REPORTED") : ""));
+                    if(alertchan) {
+                        struct ChanNode *alertchan_chan = getChanByName(alertchan);
                         struct ClientSocket *alertclient;
-                        if(alertchan && (alertclient = getBotForChannel(chan)) != NULL) {
+                        if(alertchan_chan && (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));
+                            putsock(alertclient, "PRIVMSG %s :%s", alertchan_chan->name, build_language_string(NULL, msgBuf, "NS_BOTWAR_ALERT", chan->name, user->nick));
                         }
                     }
                 }