]> jfr.im git - irc/quakenet/snircd-patchqueue.git/blame - delayedjoinXusersnotrevealed.patch
rename patch files
[irc/quakenet/snircd-patchqueue.git] / delayedjoinXusersnotrevealed.patch
CommitLineData
edb26b39
P
1# HG changeset patch
2# Parent aaa3a5dc576b78c7da4518c794f81a738fb0edd0
3
4diff -r aaa3a5dc576b ircd/channel.c
5--- a/ircd/channel.c Wed Jul 17 21:18:06 2013 +0100
6+++ b/ircd/channel.c Wed Jul 17 21:20:09 2013 +0100
7@@ -691,6 +691,13 @@
8 RevealDelayedJoin(member);
9 return 1;
10 }
11+
12+ /* +X user can always speak on the channel */
13+ if (IsXtraOp(member->user)) {
14+ if (IsDelayedJoin(member) && reveal)
15+ RevealDelayedJoin(member);
16+ return 1;
17+ }
18
19 /* Discourage using the Apass to get op. They should use the Upass. */
20 if (IsChannelManager(member) && member->channel->mode.apass[0])
21@@ -743,7 +750,7 @@
22 /*
23 * Servers can always speak on channels.
24 */
25- if (IsServer(cptr) || IsXtraOp(cptr))
26+ if (IsServer(cptr))
27 return 1;
28
29 member = find_channel_member(cptr, chptr);
30@@ -753,7 +760,9 @@
31 * or +m (moderated).
32 */
33 if (!member) {
34- if ((chptr->mode.mode & (MODE_NOPRIVMSGS|MODE_MODERATED)) ||
35+ if (IsXtraOp(cptr))
36+ return 1;
37+ else if ((chptr->mode.mode & (MODE_NOPRIVMSGS|MODE_MODERATED)) ||
38 ((chptr->mode.mode & (MODE_REGONLY|MODE_MODERATENOREG)) && !IsAccount(cptr)))
39 return 0;
40 else