mirror of
https://github.com/irssi/irssi.git
synced 2024-09-01 04:14:16 -04:00
show invites of other users when provided
This commit is contained in:
parent
c87919235a
commit
e62e55c0ab
@ -98,6 +98,14 @@ static void sig_message_invite(SERVER_REC *server, const char *channel,
|
||||
signal_stop();
|
||||
}
|
||||
|
||||
static void sig_message_invite_other(SERVER_REC *server, const char *channel,
|
||||
const char *invited, const char *nick, const char *address)
|
||||
{
|
||||
if (ignore_check(server, nick, address,
|
||||
channel, invited, MSGLEVEL_INVITES))
|
||||
signal_stop();
|
||||
}
|
||||
|
||||
static void sig_message_topic(SERVER_REC *server, const char *channel,
|
||||
const char *topic,
|
||||
const char *nick, const char *address)
|
||||
@ -118,6 +126,7 @@ void fe_ignore_messages_init(void)
|
||||
signal_add_first("message nick", (SIGNAL_FUNC) sig_message_nick);
|
||||
signal_add_first("message own_nick", (SIGNAL_FUNC) sig_message_own_nick);
|
||||
signal_add_first("message invite", (SIGNAL_FUNC) sig_message_invite);
|
||||
signal_add_first("message invite_other", (SIGNAL_FUNC) sig_message_invite_other);
|
||||
signal_add_first("message topic", (SIGNAL_FUNC) sig_message_topic);
|
||||
}
|
||||
|
||||
@ -132,5 +141,6 @@ void fe_ignore_messages_deinit(void)
|
||||
signal_remove("message nick", (SIGNAL_FUNC) sig_message_nick);
|
||||
signal_remove("message own_nick", (SIGNAL_FUNC) sig_message_own_nick);
|
||||
signal_remove("message invite", (SIGNAL_FUNC) sig_message_invite);
|
||||
signal_remove("message invite_other", (SIGNAL_FUNC) sig_message_invite_other);
|
||||
signal_remove("message topic", (SIGNAL_FUNC) sig_message_topic);
|
||||
}
|
||||
|
@ -538,6 +538,20 @@ static void sig_message_invite(SERVER_REC *server, const char *channel,
|
||||
g_free(str);
|
||||
}
|
||||
|
||||
static void sig_message_invite_other(SERVER_REC *server, const char *channel,
|
||||
const char *invited, const char *nick, const char *address)
|
||||
{
|
||||
char *str;
|
||||
int level = MSGLEVEL_INVITES;
|
||||
|
||||
ignore_check_plus(server, nick, address, channel, invited, &level, FALSE);
|
||||
|
||||
str = show_lowascii(channel);
|
||||
printformat(server, channel, level,
|
||||
TXT_INVITE_OTHER, invited, nick, str, address);
|
||||
g_free(str);
|
||||
}
|
||||
|
||||
static void sig_message_topic(SERVER_REC *server, const char *channel,
|
||||
const char *topic,
|
||||
const char *nick, const char *address)
|
||||
@ -706,6 +720,7 @@ void fe_messages_init(void)
|
||||
signal_add_last("message nick", (SIGNAL_FUNC) sig_message_nick);
|
||||
signal_add_last("message own_nick", (SIGNAL_FUNC) sig_message_own_nick);
|
||||
signal_add_last("message invite", (SIGNAL_FUNC) sig_message_invite);
|
||||
signal_add_last("message invite_other", (SIGNAL_FUNC) sig_message_invite_other);
|
||||
signal_add_last("message topic", (SIGNAL_FUNC) sig_message_topic);
|
||||
|
||||
signal_add("nicklist new", (SIGNAL_FUNC) sig_nicklist_new);
|
||||
@ -730,6 +745,7 @@ void fe_messages_deinit(void)
|
||||
signal_remove("message kick", (SIGNAL_FUNC) sig_message_kick);
|
||||
signal_remove("message nick", (SIGNAL_FUNC) sig_message_nick);
|
||||
signal_remove("message own_nick", (SIGNAL_FUNC) sig_message_own_nick);
|
||||
signal_remove("message invite_other", (SIGNAL_FUNC) sig_message_invite_other);
|
||||
signal_remove("message invite", (SIGNAL_FUNC) sig_message_invite);
|
||||
signal_remove("message topic", (SIGNAL_FUNC) sig_message_topic);
|
||||
|
||||
|
@ -101,6 +101,7 @@ FORMAT_REC fecommon_core_formats[] = {
|
||||
{ "quit_once", "{channel $3} {channick $0} {chanhost $1} has quit {reason $2}", 4, { 0, 0, 0, 0 } },
|
||||
{ "invite", "{nick $0} invites you to {channel $1}", 3, { 0, 0, 0 } },
|
||||
{ "not_invited", "You have not been invited to a channel!", 0 },
|
||||
{ "invite_other", "{nick $0} has been invited to {channel $2} by {channick_hilight $1}", 4, { 0, 0, 0, 0 } },
|
||||
{ "new_topic", "{nick $0} changed the topic of {channel $1} to: $2", 4, { 0, 0, 0, 0 } },
|
||||
{ "topic_unset", "Topic unset by {nick $0} on {channel $1}", 4, { 0, 0, 0, 0 } },
|
||||
{ "your_nick_changed", "You're now known as {nick $1}", 4, { 0, 0, 0, 0 } },
|
||||
|
@ -77,6 +77,7 @@ enum {
|
||||
TXT_QUIT_ONCE,
|
||||
TXT_INVITE,
|
||||
TXT_NOT_INVITED,
|
||||
TXT_INVITE_OTHER,
|
||||
TXT_NEW_TOPIC,
|
||||
TXT_TOPIC_UNSET,
|
||||
TXT_YOUR_NICK_CHANGED,
|
||||
|
@ -252,13 +252,18 @@ static void event_pong(IRC_SERVER_REC *server, const char *data, const char *nic
|
||||
static void event_invite(IRC_SERVER_REC *server, const char *data,
|
||||
const char *nick, const char *addr)
|
||||
{
|
||||
char *params, *channel;
|
||||
char *params, *invited, *channel;
|
||||
|
||||
g_return_if_fail(data != NULL);
|
||||
|
||||
params = event_get_params(data, 2, NULL, &channel);
|
||||
signal_emit("message invite", 4,
|
||||
server, get_visible_target(server, channel), nick, addr);
|
||||
params = event_get_params(data, 2, &invited, &channel);
|
||||
if (server->nick_comp_func(invited, server->nick) == 0) {
|
||||
signal_emit("message invite", 4,
|
||||
server, get_visible_target(server, channel), nick, addr);
|
||||
} else {
|
||||
signal_emit("message invite_other", 5,
|
||||
server, get_visible_target(server, channel), invited, nick, addr);
|
||||
}
|
||||
g_free(params);
|
||||
}
|
||||
|
||||
|
@ -336,11 +336,17 @@ static void event_kick(IRC_SERVER_REC *server, const char *data)
|
||||
|
||||
static void event_invite(IRC_SERVER_REC *server, const char *data)
|
||||
{
|
||||
char *params, *channel, *shortchan;
|
||||
char *params, *nick, *channel, *shortchan;
|
||||
|
||||
g_return_if_fail(data != NULL);
|
||||
|
||||
params = event_get_params(data, 2, NULL, &channel);
|
||||
params = event_get_params(data, 2, &nick, &channel);
|
||||
|
||||
if (server->nick_comp_func(nick, server->nick) != 0) {
|
||||
/* someone else was invited, no need to do anything */
|
||||
g_free(params);
|
||||
return;
|
||||
}
|
||||
|
||||
if (irc_channel_find(server, channel) == NULL) {
|
||||
/* check if we're supposed to autojoin this channel */
|
||||
|
@ -236,6 +236,7 @@ static void server_init(IRC_SERVER_REC *server)
|
||||
irc_cap_toggle(server, CAP_MULTI_PREFIX, TRUE);
|
||||
irc_cap_toggle(server, CAP_EXTENDED_JOIN, TRUE);
|
||||
irc_cap_toggle(server, CAP_SETNAME, TRUE);
|
||||
irc_cap_toggle(server, CAP_INVITE_NOTIFY, TRUE);
|
||||
|
||||
irc_send_cmd_now(server, "CAP LS " CAP_LS_VERSION);
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#define CAP_MULTI_PREFIX "multi-prefix"
|
||||
#define CAP_EXTENDED_JOIN "extended-join"
|
||||
#define CAP_SETNAME "draft/setname"
|
||||
#define CAP_INVITE_NOTIFY "invite-notify"
|
||||
|
||||
/* returns IRC_SERVER_REC if it's IRC server, NULL if it isn't */
|
||||
#define IRC_SERVER(server) \
|
||||
|
Loading…
Reference in New Issue
Block a user