Add /op, /deop, /voice, /devoice
This collides with using /o for /open which I'm sad about, but I think these commands should exist...master
parent
bb2f3c7a01
commit
ebbb5ad4d2
10
catgirl.1
10
catgirl.1
|
@ -1,4 +1,4 @@
|
||||||
.Dd March 25, 2020
|
.Dd March 29, 2020
|
||||||
.Dt CATGIRL 1
|
.Dt CATGIRL 1
|
||||||
.Os
|
.Os
|
||||||
.
|
.
|
||||||
|
@ -330,6 +330,10 @@ Switch to window by number.
|
||||||
.Bl -tag -width Ds
|
.Bl -tag -width Ds
|
||||||
.It Ic /ban Op Ar mask ...
|
.It Ic /ban Op Ar mask ...
|
||||||
List or ban masks from the channel.
|
List or ban masks from the channel.
|
||||||
|
.It Ic /deop Ar nick ...
|
||||||
|
Revoke channel operator status from users.
|
||||||
|
.It Ic /devoice Ar nick ...
|
||||||
|
Revoke voice from users in the channel.
|
||||||
.It Ic /except Op Ar mask ...
|
.It Ic /except Op Ar mask ...
|
||||||
List or add masks to the channel ban exception list.
|
List or add masks to the channel ban exception list.
|
||||||
.It Ic /invex Op Ar mask ...
|
.It Ic /invex Op Ar mask ...
|
||||||
|
@ -342,12 +346,16 @@ In the
|
||||||
.Sy <network>
|
.Sy <network>
|
||||||
window,
|
window,
|
||||||
show or set user modes.
|
show or set user modes.
|
||||||
|
.It Ic /op Ar nick ...
|
||||||
|
Grant users channel operator status.
|
||||||
.It Ic /unban Ar mask ...
|
.It Ic /unban Ar mask ...
|
||||||
Unban masks from the channel.
|
Unban masks from the channel.
|
||||||
.It Ic /unexcept Ar mask ...
|
.It Ic /unexcept Ar mask ...
|
||||||
Remove masks from the channel ban exception list.
|
Remove masks from the channel ban exception list.
|
||||||
.It Ic /uninvex Ar mask ...
|
.It Ic /uninvex Ar mask ...
|
||||||
Remove masks from the channel invite list.
|
Remove masks from the channel invite list.
|
||||||
|
.It Ic /voice Ar nick ...
|
||||||
|
Grant users voice in the channel.
|
||||||
.El
|
.El
|
||||||
.
|
.
|
||||||
.Sh KEY BINDINGS
|
.Sh KEY BINDINGS
|
||||||
|
|
24
command.c
24
command.c
|
@ -206,6 +206,26 @@ static void channelListMode(uint id, char pm, char l, char *params) {
|
||||||
ircFormat("MODE %s %c%.*s %s\r\n", idNames[id], pm, count, modes, params);
|
ircFormat("MODE %s %c%.*s %s\r\n", idNames[id], pm, count, modes, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void commandOp(uint id, char *params) {
|
||||||
|
if (!params) return;
|
||||||
|
channelListMode(id, '+', 'o', params);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void commandDeop(uint id, char *params) {
|
||||||
|
if (!params) return;
|
||||||
|
channelListMode(id, '-', 'o', params);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void commandVoice(uint id, char *params) {
|
||||||
|
if (!params) return;
|
||||||
|
channelListMode(id, '+', 'v', params);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void commandDevoice(uint id, char *params) {
|
||||||
|
if (!params) return;
|
||||||
|
channelListMode(id, '-', 'v', params);
|
||||||
|
}
|
||||||
|
|
||||||
static void commandBan(uint id, char *params) {
|
static void commandBan(uint id, char *params) {
|
||||||
if (params) {
|
if (params) {
|
||||||
channelListMode(id, '+', 'b', params);
|
channelListMode(id, '+', 'b', params);
|
||||||
|
@ -379,6 +399,8 @@ static const struct Handler {
|
||||||
{ "/copy", commandCopy, Restricted },
|
{ "/copy", commandCopy, Restricted },
|
||||||
{ "/cs", commandCS, 0 },
|
{ "/cs", commandCS, 0 },
|
||||||
{ "/debug", commandDebug, Restricted },
|
{ "/debug", commandDebug, Restricted },
|
||||||
|
{ "/deop", commandDeop, 0 },
|
||||||
|
{ "/devoice", commandDevoice, 0 },
|
||||||
{ "/except", commandExcept, 0 },
|
{ "/except", commandExcept, 0 },
|
||||||
{ "/exec", commandExec, Multiline | Restricted },
|
{ "/exec", commandExec, Multiline | Restricted },
|
||||||
{ "/help", commandHelp, 0 },
|
{ "/help", commandHelp, 0 },
|
||||||
|
@ -395,6 +417,7 @@ static const struct Handler {
|
||||||
{ "/nick", commandNick, 0 },
|
{ "/nick", commandNick, 0 },
|
||||||
{ "/notice", commandNotice, Multiline },
|
{ "/notice", commandNotice, Multiline },
|
||||||
{ "/ns", commandNS, 0 },
|
{ "/ns", commandNS, 0 },
|
||||||
|
{ "/op", commandOp, 0 },
|
||||||
{ "/open", commandOpen, Restricted },
|
{ "/open", commandOpen, Restricted },
|
||||||
{ "/part", commandPart, 0 },
|
{ "/part", commandPart, 0 },
|
||||||
{ "/query", commandQuery, Restricted },
|
{ "/query", commandQuery, Restricted },
|
||||||
|
@ -405,6 +428,7 @@ static const struct Handler {
|
||||||
{ "/unban", commandUnban, 0 },
|
{ "/unban", commandUnban, 0 },
|
||||||
{ "/unexcept", commandUnexcept, 0 },
|
{ "/unexcept", commandUnexcept, 0 },
|
||||||
{ "/uninvex", commandUninvex, 0 },
|
{ "/uninvex", commandUninvex, 0 },
|
||||||
|
{ "/voice", commandVoice, 0 },
|
||||||
{ "/whois", commandWhois, 0 },
|
{ "/whois", commandWhois, 0 },
|
||||||
{ "/window", commandWindow, 0 },
|
{ "/window", commandWindow, 0 },
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue