]> jfr.im git - irc/quakenet/newserv.git/blobdiff - channel/channelhandlers.c
LUA: add function for channel chanop notice
[irc/quakenet/newserv.git] / channel / channelhandlers.c
index 19faac264090192fead71d7661c409a2cf083643..a42847bbcb8722e83a6d66493385a0a5520693da 100644 (file)
@@ -27,7 +27,7 @@ int handleburstmsg(void *source, int cargc, char **cargv) {
   int isnewchan;
   
   /* (we don't see the first 2 params in cargc) */
-  /* AK B #+lod+ 1017561154 +tnk eits ATJWu:o,AiW1a,Ag3lV,AiWnl,AE6oI :%*!@D577A90D.kabel.telenet.be */
+  /* AK B #+lod+ 1017561154 +tnk eits ATJWu:o,AiW1a,Ag3lV,AiWnl,AE6oI :%*!@123.example.net */
   
   if (cargc<2) {
     Error("channel",ERR_WARNING,"Burst message with only %d parameters",cargc);
@@ -432,11 +432,13 @@ int handlepartmsg(void *source, int cargc, char **cargv) {
       /* Erm, parting a channel that's not there?? */
       Error("channel",ERR_WARNING,"Nick %s left non-existent channel %s",np->nick,nextchan);
     } else {
-      /* Trigger hook *FIRST* */
-      harg[0]=cp;
-      triggerhook(HOOK_CHANNEL_PART,harg);
-      
-      delnickfromchannel(cp,np->numeric,1);
+      /* Skip ghost parts (confirmation for kick from target server). */
+      if (getnumerichandlefromchanhash(cp->users, np->numeric)) {
+        /* Trigger hook *FIRST* */
+        harg[0]=cp;
+        triggerhook(HOOK_CHANNEL_PART,harg);
+        delnickfromchannel(cp,np->numeric,1);
+      }
     }
     nextchan=pos;
   }