projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added basic halfop support
[NeonServV5.git]
/
src
/
WHOHandler.c
diff --git
a/src/WHOHandler.c
b/src/WHOHandler.c
index f7287a3cf367a48cad2f0543f0b22d1b342d72a1..a21f560414ec7ad962a2fb75e76ff43f01ee95cb 100644
(file)
--- a/
src/WHOHandler.c
+++ b/
src/WHOHandler.c
@@
-208,6
+208,9
@@
void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
case '@':
chanuserflags |= CHANUSERFLAG_OPPED;
break;
case '@':
chanuserflags |= CHANUSERFLAG_OPPED;
break;
+ case '%':
+ chanuserflags |= CHANUSERFLAG_HALFOPPED;
+ break;
case '+':
chanuserflags |= CHANUSERFLAG_VOICED;
break;
case '+':
chanuserflags |= CHANUSERFLAG_VOICED;
break;
@@
-224,7
+227,7
@@
void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
struct UserNode *user = getUserByNick(argv[4]);
struct ChanUser *chanuser;
struct UserNode *user = getUserByNick(argv[4]);
struct ChanUser *chanuser;
- if((chanuserflags & CHANUSERFLAG_INVISIBLE) &&
!isBot(user
)) {
+ if((chanuserflags & CHANUSERFLAG_INVISIBLE) &&
(!user || !isBot(user)
)) {
user = createTempUser(argv[4]);
user->flags |= USERFLAG_ISTMPUSER;
chan->flags |= CHANFLAG_HAVE_INVISIBLES;
user = createTempUser(argv[4]);
user->flags |= USERFLAG_ISTMPUSER;
chan->flags |= CHANFLAG_HAVE_INVISIBLES;
@@
-237,7
+240,7
@@
void recv_whohandler_354(struct ClientSocket *client, char **argv, unsigned int
if(!(chanuser = getChanUser(user, chan))) {
chanuser = addChanUser(chan, user);
}
if(!(chanuser = getChanUser(user, chan))) {
chanuser = addChanUser(chan, user);
}
- chanuser->flags = (chanuser->flags & ~
CHANUSERFLAG_OPPED_OR_VOICED
) | chanuserflags;
+ chanuser->flags = (chanuser->flags & ~
(CHANUSERFLAG_OPPED_OR_VOICED | CHANUSERFLAG_INVISIBLE)
) | chanuserflags;
}
user->flags = (user->flags & ~USERFLAG_ISIRCOP) | userflags;
user->last_who = time(0);
}
user->flags = (user->flags & ~USERFLAG_ISIRCOP) | userflags;
user->last_who = time(0);