diff --git a/help/opers/umode b/help/opers/umode index 8f8de08..cdae8a9 100644 --- a/help/opers/umode +++ b/help/opers/umode @@ -25,4 +25,6 @@ User modes: (* designates that the umode is oper only) +G - "soft caller id" mode - same as +g but automatically allows anyone who's in a common channel with you to message you. +V - Prevents you from receiving invites. + +I - Prevents non-opers from seeing your channel list in + a whois query. +Z - Is connected via SSL (set only on connection). diff --git a/help/users/umode b/help/users/umode index 3871849..519e5b1 100644 --- a/help/users/umode +++ b/help/users/umode @@ -14,6 +14,8 @@ User modes: (? designates that the umode is provided by an extension +B - Marks you as a bot in /whois. +C - Prevents you from receiving CTCPs other than ACTION. +D - Deaf - ignores all channel messages. + +I - Prevents non-opers from seeing your channel list in + a whois query. +Q - Prevents you from being affected by channel forwarding. +R - Prevents non accept unidentified users from messaging you. +G - "soft caller id" mode - same as +g but automatically allows diff --git a/include/client.h b/include/client.h index 0e9ae53..b17cb62 100644 --- a/include/client.h +++ b/include/client.h @@ -426,6 +426,7 @@ struct ListClient #define UMODE_NOINVITE 0x0800 /* block invites */ #define UMODE_BOT 0x8000 /* mark as a bot in whois */ #define UMODE_SCALLERID 0x40000 /* soft caller id */ +#define UMODE_HIDECHANS 0x80000 /* hide channels in whois */ /* user information flags, only settable by remote mode or local oper */ #define UMODE_OPER 0x1000 /* Operator */ diff --git a/modules/m_whois.c b/modules/m_whois.c index dd1b7ee..1daedce 100644 --- a/modules/m_whois.c +++ b/modules/m_whois.c @@ -276,7 +276,7 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy) t = buf + mlen; - if (!IsService(target_p)) + if (!IsService(target_p) && (!(target_p->umodes & UMODE_HIDECHANS) || IsOper(source_p))) { RB_DLINK_FOREACH(ptr, target_p->user->channel.head) { diff --git a/src/s_user.c b/src/s_user.c index 7a8cfbd..85db656 100644 --- a/src/s_user.c +++ b/src/s_user.c @@ -74,7 +74,7 @@ int user_modes[256] = { 0, /* F */ UMODE_SCALLERID, /* G */ 0, /* H */ - 0, /* I */ + UMODE_HIDECHANS, /* I */ 0, /* J */ 0, /* K */ 0, /* L */