about summary refs log tree commit diff
path: root/command.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-03-29 12:43:53 -0400
committerJune McEnroe <june@causal.agency>2020-03-29 12:43:53 -0400
commitebbb5ad4d20f7d68134f236f6dbd7e00251579bd (patch)
treebedc8494b82fce734c580017e2676115079523c1 /command.c
parentRewrite mode formatting again and write to log (diff)
downloadcatgirl-ebbb5ad4d20f7d68134f236f6dbd7e00251579bd.tar.gz
catgirl-ebbb5ad4d20f7d68134f236f6dbd7e00251579bd.zip
Add /op, /deop, /voice, /devoice
This collides with using /o for /open which I'm sad about, but I think
these commands should exist...
Diffstat (limited to 'command.c')
-rw-r--r--command.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/command.c b/command.c
index 7339574..4779a6a 100644
--- a/command.c
+++ b/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);
 }
 
+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) {
 	if (params) {
 		channelListMode(id, '+', 'b', params);
@@ -379,6 +399,8 @@ static const struct Handler {
 	{ "/copy", commandCopy, Restricted },
 	{ "/cs", commandCS, 0 },
 	{ "/debug", commandDebug, Restricted },
+	{ "/deop", commandDeop, 0 },
+	{ "/devoice", commandDevoice, 0 },
 	{ "/except", commandExcept, 0 },
 	{ "/exec", commandExec, Multiline | Restricted },
 	{ "/help", commandHelp, 0 },
@@ -395,6 +417,7 @@ static const struct Handler {
 	{ "/nick", commandNick, 0 },
 	{ "/notice", commandNotice, Multiline },
 	{ "/ns", commandNS, 0 },
+	{ "/op", commandOp, 0 },
 	{ "/open", commandOpen, Restricted },
 	{ "/part", commandPart, 0 },
 	{ "/query", commandQuery, Restricted },
@@ -405,6 +428,7 @@ static const struct Handler {
 	{ "/unban", commandUnban, 0 },
 	{ "/unexcept", commandUnexcept, 0 },
 	{ "/uninvex", commandUninvex, 0 },
+	{ "/voice", commandVoice, 0 },
 	{ "/whois", commandWhois, 0 },
 	{ "/window", commandWindow, 0 },
 };