]> jfr.im git - solanum.git/blame - extensions/hide_uncommon_channels.c
Merge pull request #288 from edk0/umode-o-split
[solanum.git] / extensions / hide_uncommon_channels.c
CommitLineData
32d57028
AC
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
eeabf33a
EM
15static const char hide_desc[] = "Hides channel memberships not shared";
16
32d57028
AC
17static void h_huc_doing_whois_channel_visibility(hook_data_client *);
18
19mapi_hfn_list_av1 huc_hfnlist[] = {
20 { "doing_whois_channel_visibility", (hookfn) h_huc_doing_whois_channel_visibility },
21 { NULL, NULL }
22};
23
dacd2aa8 24DECLARE_MODULE_AV2(hide_uncommon_channels, NULL, NULL, NULL, NULL, huc_hfnlist, NULL, NULL, hide_desc);
32d57028
AC
25
26static void
27h_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}