]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blame - chanopaccountabilityforkickdelayedjoin.patch
whonoidle: hide idle time of users with mode +I in non-HIS setup in WHO
[irc/quakenet/snircd-patchqueue.git] / chanopaccountabilityforkickdelayedjoin.patch
CommitLineData
715c825d
CP
1kicking of a delayedjoin user by a chanop is shown to ALL chanops on the channel, for accountability reasons (instead of only to source and victim)
2
3diff -r c4d8c0416ae6 ircd/m_kick.c
4--- a/ircd/m_kick.c Sun Jan 11 22:38:38 2009 +0000
5+++ b/ircd/m_kick.c Sun Jan 11 22:38:39 2009 +0000
6@@ -176,11 +176,17 @@
7
8 if (IsDelayedJoin(member)) {
9 /* If it's a delayed join, only send the KICK to the person doing
10- * the kicking and the victim */
11+ * the kicking and the victim
12+ * ok, but accountability among chanops:
13+ * a chanop kicks the victim, tell the other chanops about his action,
14+ * join the victim to the channel, followed by the kick
15+ */
16 if (MyUser(who))
17 sendcmdto_one(sptr, CMD_KICK, who, "%H %C :%s", chptr, who, comment);
18- sendcmdto_one(who, CMD_JOIN, sptr, "%H", chptr);
19- sendcmdto_one(sptr, CMD_KICK, sptr, "%H %C :%s", chptr, who, comment);
20+ sendcmdto_channel_butserv_butone(who, CMD_JOIN, chptr, NULL, SKIP_NONOPS,
21+ "%H", chptr);
22+ sendcmdto_channel_butserv_butone(sptr, CMD_KICK, chptr, NULL, SKIP_NONOPS,
23+ "%H %C :%s", chptr, who, comment);
24 CheckDelayedJoins(chptr);
25 } else
26 sendcmdto_channel_butserv_butone((IsServer(sptr) ? &me : sptr), CMD_KICK, chptr, NULL, 0, "%H %C :%s", chptr, who,
27@@ -270,6 +276,16 @@
28
29 if (member) { /* and tell the channel about it */
30 if (IsDelayedJoin(member)) {
31+ /* accountability among chanops:
32+ * a chanop kicks the victim, tell the other chanops about his action,
33+ * join the victim to the channel, followed by the kick
34+ */
35+ if (IsUser(sptr)) {
36+ sendcmdto_channel_butserv_butone(who, CMD_JOIN, chptr, NULL, SKIP_NONOPS,
37+ "%H", chptr);
38+ sendcmdto_channel_butserv_butone(sptr, CMD_KICK, chptr, NULL, SKIP_NONOPS,
39+ "%H %C :%s", chptr, who, comment);
40+ }
41 if (MyUser(who))
42 sendcmdto_one(IsServer(sptr) ? &his : sptr, CMD_KICK,
43 who, "%H %C :%s", chptr, who, comment);