+D - Disable CTCP ACTION. All CTCP ACTIONs to the channel will
be blocked.
+T - Disable notice. All notices to the channel are disallowed.
+ +E - No kicks. Chanops will not be able to use /kick on this
+ channel.
WITH PARAMETERS:
+f - Forward. Forwards users who cannot join because of +i,
#define MODE_NOCTCP 0x8000 /* Block CTCPs directed to this channel */
#define MODE_NONOTICE 0x16000 /* Block notices directed to this channel */
#define MODE_NOACTION 0x32000 /* Block CTCP ACTION directed to this channel */
+#define MODE_NOKICK 0x64000 /* Disable /kick on this channel */
#define CHFL_BAN 0x10000000 /* ban channel flag */
#define CHFL_EXCEPTION 0x20000000 /* exception to ban channel flag */
#define ERR_DISABLED 517 /* from ircu */
+#define ERR_NOKICK 519 /* from old shadow */
+
#define ERR_HELPNOTFOUND 524
#define RPL_WHOISSECURE 671 /* Unreal3.2 --nenolod */
return 0;
}
+ if(MyClient(source_p) && chptr->mode.mode & MODE_NOKICK)
+ {
+ sendto_one_numeric(source_p, ERR_NOKICK,
+ form_str(ERR_NOKICK),
+ chptr->chname);
+ return 0;
+ }
+
if(MyClient(source_p))
{
hook_data_channel_approval hookdata;
{chm_nosuch, 0 }, /* B */
{chm_simple, MODE_NOCTCP }, /* C */
{chm_simple, MODE_NOACTION }, /* D */
- {chm_nosuch, 0 }, /* E */
+ {chm_simple, MODE_NOKICK }, /* E */
{chm_simple, MODE_FREETARGET }, /* F */
{chm_nosuch, 0 }, /* G */
{chm_nosuch, 0 }, /* H */
/* 516 */ NULL,
/* 517 ERR_DISABLED */ "%s :This command has been administratively disabled",
/* 518 */ NULL,
-/* 519 */ NULL,
+/* 519 ERR_NOKICK */ "%s :You cannot kick users in this channel because +E is set",
/* 520 */ NULL,
/* 521 */ NULL,
/* 522 */ NULL,