]> jfr.im git - solanum.git/blob - extensions/hide_uncommon_channels.c
Note that messages caught in +g/+G are discarded
[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(void *);
18
19 mapi_hfn_list_av1 huc_hfnlist[] = {
20 { "doing_whois_channel_visibility", 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(void *data_)
28 {
29 hook_data_channel_visibility *data = data_;
30 data->approved = data->approved && (!IsInvisible(data->target) || data->clientms != NULL);
31 }