diff --git a/src/chmode.c b/src/chmode.c index 38393b2a..b6c761dd 100644 --- a/src/chmode.c +++ b/src/chmode.c @@ -1664,7 +1664,10 @@ set_channel_mode(struct Client *client_p, struct Client *source_p, default: /* If this mode char is locked, don't allow local users to change it. */ if (MyClient(source_p) && chptr->mode_lock && strchr(chptr->mode_lock, c)) + { + sendto_one_numeric(source_p, ERR_MLOCKRESTRICTED, form_str(ERR_MLOCKRESTRICTED), chptr->name, c, chptr->mode_lock); continue; + } chmode_table[(unsigned char) c].set_func(fakesource_p, chptr, alevel, parc, &parn, parv, &errors, dir, c, diff --git a/src/messages.tab b/src/messages.tab index 0660e6c0..71600d56 100644 --- a/src/messages.tab +++ b/src/messages.tab @@ -756,7 +756,7 @@ static const char * replies[] = { /* 732 RPL_MONLIST */ ":%s 732 %s :%s", /* 733 RPL_ENDOFMONLIST */ ":%s 733 %s :End of MONITOR list", /* 734 ERR_MONLISTFULL */ ":%s 734 %s %d %s :Monitor list is full", -/* 735 ERR_MLOCKRESTRICTED */ "%s %c :This mode cannot be set because it is restricted to Services only.", +/* 735 ERR_MLOCKRESTRICTED */ "%s %c %s :MODE cannot be set due to channel having an active MLOCK restriction policy", /* 736 */ NULL, /* 737 */ NULL, /* 738 */ NULL,