fixed invisible nicklist (bots need to be added even if they join invisible)
[NeonServV5.git] / src / WHOHandler.c
index c8c65820043017651b46e52ac13b76bdeacfca04..f7287a3cf367a48cad2f0543f0b22d1b342d72a1 100644 (file)
@@ -222,16 +222,15 @@ void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
             }
         }
         
-        struct UserNode *user;
+        struct UserNode *user = getUserByNick(argv[4]);
         struct ChanUser *chanuser;
-        if(chanuserflags & CHANUSERFLAG_INVISIBLE) {
+        if((chanuserflags & CHANUSERFLAG_INVISIBLE) && !isBot(user)) {
             user = createTempUser(argv[4]);
             user->flags |= USERFLAG_ISTMPUSER;
             chan->flags |= CHANFLAG_HAVE_INVISIBLES;
             chanuser = addInvisibleChanUser(chan, user);
             chanuser->flags = (chanuser->flags & ~CHANUSERFLAG_OPPED_OR_VOICED) | chanuserflags;
         } else {
-            user = getUserByNick(argv[4]);
             if(user == NULL) {
                 user = addUser(argv[4]);
             }
@@ -290,7 +289,7 @@ void recv_whohandler_315(struct ClientSocket *client, char **argv, unsigned int
             struct ChanUser *chanuser, *next;
             for(chanuser = getChannelUsers(entry->chan, NULL); chanuser; chanuser = next) {
                 next = getChannelUsers(entry->chan, chanuser);
-                if(chanuser->flags & CHANUSERFLAG_INVISIBLE) {
+                if((chanuser->flags & CHANUSERFLAG_INVISIBLE) && !isBot(chanuser->user)) {
                     delChanUser(chanuser, 1);
                 }
             }