{"NS_MYACCESS_COUNT_MATCH", "%s has access in \002%d\002 channel(s) and is owner of \002%d\002 channel(s) (\002%d\002 channels matching your request)."},
{"NS_UP_ALREADY_OP", "You are already opped in \002%s\002."},
{"NS_UP_ALREADY_VOICE", "You are already voiced in \002%s\002."},
+ {"NS_DOWN_ALREADY", "You are not opped or voiced in \002%s\002."},
{NULL, NULL}
};
//#include "cmd_neonserv_giveownership.c"
#include "cmd_neonserv_users.c"
#include "cmd_neonserv_up.c"
-//#include "cmd_neonserv_down.c"
+#include "cmd_neonserv_down.c"
//#include "cmd_neonserv_upall.c"
//#include "cmd_neonserv_downall.c"
//#include "cmd_neonserv_op.c"
register_command(BOTID, "delme", neonserv_cmd_delme, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH);
register_command(BOTID, "myaccess", neonserv_cmd_myaccess, 0, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH);
register_command(BOTID, "up", neonserv_cmd_up, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN);
+ register_command(BOTID, "down", neonserv_cmd_down, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN);
start_bots();
bind_bot_ready(neonserv_bot_ready);
--- /dev/null
+
+/*
+* no arguments
+*/
+
+static CMD_BIND(neonserv_cmd_down) {
+ struct ChanUser *chanuser = getChanUser(user, chan);
+ if(!chanuser) {
+ reply(getTextBot(), user, "NS_NOT_ON_CHANNEL_YOU", chan->name);
+ return;
+ }
+ if((chanuser->flags & CHANUSERFLAG_OPPED)) {
+ putsock(client, "MODE %s -ov %s %s", chan->name, user->nick, user->nick);
+ } else if((chanuser->flags & CHANUSERFLAG_VOICED)) {
+ putsock(client, "MODE %s -v %s", chan->name, user->nick);
+ } else
+ reply(getTextBot(), user, "NS_DOWN_ALREADY", chan->name);
+}
} else
reply(getTextBot(), user, "NS_UP_ALREADY_OP", chan->name);
} else if(caccess >= chan_getvoice) {
- if(!(chanuser->flags & CHANUSERFLAG_OPPED)) {
+ if(!(chanuser->flags & CHANUSERFLAG_VOICED)) {
putsock(client, "MODE %s +v %s", chan->name, user->nick);
} else
reply(getTextBot(), user, "NS_UP_ALREADY_VOICE", chan->name);