]> jfr.im git - solanum.git/blob - extensions/hide_uncommon_channels.c
Merge pull request #288 from edk0/umode-o-split
[solanum.git] / extensions / hide_uncommon_channels.c
1 /*
2 * Override WHOIS logic to hide channel memberships that are not common.
3 * -- kaniini
4 */
5
6 #include "stdinc.h"
7 #include "modules.h"
8 #include "client.h"
9 #include "hook.h"
10 #include "ircd.h"
11 #include "send.h"
12 #include "s_conf.h"
13 #include "s_newconf.h"
14
15 static const char hide_desc[] = "Hides channel memberships not shared";
16
17 static void h_huc_doing_whois_channel_visibility(hook_data_client *);
18
19 mapi_hfn_list_av1 huc_hfnlist[] = {
20 { "doing_whois_channel_visibility", (hookfn) h_huc_doing_whois_channel_visibility },
21 { NULL, NULL }
22 };
23
24 DECLARE_MODULE_AV2(hide_uncommon_channels, NULL, NULL, NULL, NULL, huc_hfnlist, NULL, NULL, hide_desc);
25
26 static void
27 h_huc_doing_whois_channel_visibility(hook_data_client *hdata)
28 {
29 hdata->approved = ((PubChannel(hdata->chptr) && !IsInvisible(hdata->target)) || IsMember((hdata->client), (hdata->chptr)));
30 }