Add /invite
parent
8aa6dd86f6
commit
39a343980b
11
catgirl.1
11
catgirl.1
|
@ -242,6 +242,8 @@ can be typed
|
||||||
.Bl -tag -width Ds
|
.Bl -tag -width Ds
|
||||||
.It Ic /away Op Ar message
|
.It Ic /away Op Ar message
|
||||||
Set or clear your away status.
|
Set or clear your away status.
|
||||||
|
.It Ic /invite Ar nick
|
||||||
|
Invite a user to the channel.
|
||||||
.It Ic /join Ar channel
|
.It Ic /join Ar channel
|
||||||
Join a channel.
|
Join a channel.
|
||||||
.It Ic /list Op Ar channel
|
.It Ic /list Op Ar channel
|
||||||
|
@ -558,6 +560,15 @@ join = #ascii.town
|
||||||
.
|
.
|
||||||
.It
|
.It
|
||||||
.Rs
|
.Rs
|
||||||
|
.%A Attila Molnar
|
||||||
|
.%A Adam
|
||||||
|
.%T IRCv3.2 invite-notify Extension
|
||||||
|
.%I IRCv3 Working Group
|
||||||
|
.%U https://ircv3.net/specs/extensions/invite-notify-3.2
|
||||||
|
.Re
|
||||||
|
.
|
||||||
|
.It
|
||||||
|
.Rs
|
||||||
.%A Daniel Oaks
|
.%A Daniel Oaks
|
||||||
.%T IRC Formatting
|
.%T IRC Formatting
|
||||||
.%I ircdocs
|
.%I ircdocs
|
||||||
|
|
1
chat.h
1
chat.h
|
@ -71,6 +71,7 @@ static inline enum Color hash(const char *str) {
|
||||||
|
|
||||||
#define ENUM_CAP \
|
#define ENUM_CAP \
|
||||||
X("extended-join", CapExtendedJoin) \
|
X("extended-join", CapExtendedJoin) \
|
||||||
|
X("invite-notify", CapInviteNotify) \
|
||||||
X("sasl", CapSASL) \
|
X("sasl", CapSASL) \
|
||||||
X("server-time", CapServerTime) \
|
X("server-time", CapServerTime) \
|
||||||
X("userhost-in-names", CapUserhostInNames)
|
X("userhost-in-names", CapUserhostInNames)
|
||||||
|
|
|
@ -135,6 +135,12 @@ static void commandNames(size_t id, char *params) {
|
||||||
replies.names++;
|
replies.names++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void commandInvite(size_t id, char *params) {
|
||||||
|
if (!params) return;
|
||||||
|
char *nick = strsep(¶ms, " ");
|
||||||
|
ircFormat("INVITE %s %s\r\n", nick, idNames[id]);
|
||||||
|
}
|
||||||
|
|
||||||
static void commandList(size_t id, char *params) {
|
static void commandList(size_t id, char *params) {
|
||||||
(void)id;
|
(void)id;
|
||||||
if (params) {
|
if (params) {
|
||||||
|
@ -251,6 +257,7 @@ static const struct Handler {
|
||||||
{ "/debug", .fn = commandDebug, .restricted = true },
|
{ "/debug", .fn = commandDebug, .restricted = true },
|
||||||
{ "/exec", .fn = commandExec, .restricted = true },
|
{ "/exec", .fn = commandExec, .restricted = true },
|
||||||
{ "/help", .fn = commandHelp },
|
{ "/help", .fn = commandHelp },
|
||||||
|
{ "/invite", .fn = commandInvite },
|
||||||
{ "/join", .fn = commandJoin, .restricted = true },
|
{ "/join", .fn = commandJoin, .restricted = true },
|
||||||
{ "/list", .fn = commandList },
|
{ "/list", .fn = commandList },
|
||||||
{ "/me", .fn = commandMe },
|
{ "/me", .fn = commandMe },
|
||||||
|
|
20
handle.c
20
handle.c
|
@ -418,6 +418,25 @@ static void handleTopic(struct Message *msg) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void handleInvite(struct Message *msg) {
|
||||||
|
require(msg, true, 2);
|
||||||
|
if (!strcmp(msg->params[0], self.nick)) {
|
||||||
|
uiFormat(
|
||||||
|
Network, Hot, tagTime(msg),
|
||||||
|
"\3%02d%s\3\tinvites you to \3%02d%s\3",
|
||||||
|
hash(msg->user), msg->nick, hash(msg->params[1]), msg->params[1]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
uiFormat(
|
||||||
|
idFor(msg->params[1]), Cold, tagTime(msg),
|
||||||
|
"\3%02d%s\3\tinvites %s to \3%02d%s\3",
|
||||||
|
hash(msg->user), msg->nick,
|
||||||
|
msg->params[0],
|
||||||
|
hash(msg->params[1]), msg->params[1]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void handleReplyList(struct Message *msg) {
|
static void handleReplyList(struct Message *msg) {
|
||||||
require(msg, false, 4);
|
require(msg, false, 4);
|
||||||
if (!replies.list) return;
|
if (!replies.list) return;
|
||||||
|
@ -710,6 +729,7 @@ static const struct Handler {
|
||||||
{ "AUTHENTICATE", handleAuthenticate },
|
{ "AUTHENTICATE", handleAuthenticate },
|
||||||
{ "CAP", handleCap },
|
{ "CAP", handleCap },
|
||||||
{ "ERROR", handleError },
|
{ "ERROR", handleError },
|
||||||
|
{ "INVITE", handleInvite },
|
||||||
{ "JOIN", handleJoin },
|
{ "JOIN", handleJoin },
|
||||||
{ "KICK", handleKick },
|
{ "KICK", handleKick },
|
||||||
{ "NICK", handleNick },
|
{ "NICK", handleNick },
|
||||||
|
|
Loading…
Reference in New Issue