X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/5b453fee2ae6ae6e0a3c4e4cc246acc8dfab3a58..2498a1b577ac3901abbff2612d3647f8aef038b7:/modules/core/m_kick.c diff --git a/modules/core/m_kick.c b/modules/core/m_kick.c index 12bf5de..3029ca6 100644 --- a/modules/core/m_kick.c +++ b/modules/core/m_kick.c @@ -68,6 +68,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p char *comment; const char *name; char *p = NULL; + char text[10]; const char *user; static char buf[BUFSIZE]; int is_override = 0; @@ -114,7 +115,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p is_override = 1; else { - sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), + sendto_one(source_p, ":%s 482 %s %s :You do not have the proper privledges to kick this user", me.name, source_p->name, name); return 0; } @@ -204,9 +205,14 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p comment[REASONLEN] = '\0'; if(is_override) - sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, + { + sendto_wallops_flags(UMODE_WALLOP, &me, "%s is overriding KICK [%s] on [%s] [%s]", get_oper_name(source_p), who->name, chptr->chname, comment); + sendto_server(NULL, chptr, NOCAPS, NOCAPS, + ":%s WALLOPS :%s is overriding KICK [%s] on [%s] [%s]", + me.name, get_oper_name(source_p), who->name, chptr->chname, comment); + } /* jdc * - In the case of a server kicking a user (i.e. CLEARCHAN), @@ -228,6 +234,12 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p ":%s KICK %s %s :%s", use_id(source_p), chptr->chname, use_id(who), comment); remove_user_from_channel(msptr); + + rb_snprintf(text, sizeof(text), "K%s", who->id); + + /* we don't need to track NOREJOIN stuff unless it's our client being kicked */ + if(MyClient(who) && chptr->mode.mode & MODE_NOREJOIN) + channel_metadata_time_add(chptr, text, rb_current_time(), "KICKNOREJOIN"); } else if (MyClient(source_p)) sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,