Add events for quiet

This commit is contained in:
TingPing
2013-04-07 17:49:30 -04:00
parent c766b24920
commit 3c4a154f0a
3 changed files with 47 additions and 0 deletions

View File

@@ -392,6 +392,8 @@ handle_single_mode (mode_run *mr, char sign, char mode, char *nick,
session *sess;
server *serv = mr->serv;
char outbuf[4];
char *cm = serv->chanmodes;
gboolean supportsq = FALSE;
outbuf[0] = sign;
outbuf[1] = 0;
@@ -417,6 +419,17 @@ handle_single_mode (mode_run *mr, char sign, char mode, char *nick,
record_chan_mode (sess, sign, mode, arg);
}
/* Is q a chanmode on this server? */
if (cm)
while (*cm)
{
if (*cm == ',')
break;
if (*cm == 'q')
supportsq = TRUE;
cm++;
}
switch (sign)
{
case '+':
@@ -460,6 +473,12 @@ handle_single_mode (mode_run *mr, char sign, char mode, char *nick,
if (!quiet)
EMIT_SIGNAL (XP_TE_CHANINVITE, sess, nick, arg, NULL, NULL, 0);
return;
case 'q':
if (!supportsq)
break; /* +q is owner on this server */
if (!quiet)
EMIT_SIGNAL (XP_TE_CHANQUIET, sess, nick, arg, NULL, NULL, 0);
return;
}
break;
case '-':
@@ -503,6 +522,12 @@ handle_single_mode (mode_run *mr, char sign, char mode, char *nick,
if (!quiet)
EMIT_SIGNAL (XP_TE_CHANRMINVITE, sess, nick, arg, NULL, NULL, 0);
return;
case 'q':
if (!supportsq)
break; /* -q is owner on this server */
if (!quiet)
EMIT_SIGNAL (XP_TE_CHANUNQUIET, sess, nick, arg, NULL, NULL, 0);
return;
}
}