]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/hash.c
Some mod-track fixups, and make x3 kicking a user report correctly in all modules
[irc/evilnet/x3.git] / src / hash.c
index 31730f14e02183dc3ac290cb2656588cc348ad99..ebf2d9a497e924a99d1065dcfe84d0f1f3812a2e 100644 (file)
@@ -607,11 +607,21 @@ DelChannelUser(struct userNode* user, struct chanNode* channel, const char *reas
         DelChannel(channel);
 }
 
+static kick_func_t *kf_list;
+static unsigned int kf_size = 0, kf_used = 0;
+
 void
 KickChannelUser(struct userNode* target, struct chanNode* channel, struct userNode *kicker, const char *why)
 {
+    unsigned int n;
+
     if (!target || !channel || IsService(target) || !GetUserMode(channel, target))
         return;
+
+    /* This may break things, but lets see.. -Rubin */
+    for (n=0; n<kf_used; n++)
+        kf_list[n](kicker, target, channel);
+
     /* don't remove them from the channel, since the server will send a PART */
     irc_kick(kicker, target, channel, why);
 
@@ -623,9 +633,6 @@ KickChannelUser(struct userNode* target, struct chanNode* channel, struct userNo
     }
 }
 
-static kick_func_t *kf_list;
-static unsigned int kf_size = 0, kf_used = 0;
-
 void
 reg_kick_func(kick_func_t handler)
 {