mirror of
https://github.com/anope/anope.git
synced 2026-06-28 22:16:37 +02:00
Changed cs_status to use new command API.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1964 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
+53
-49
@@ -15,76 +15,80 @@
|
||||
|
||||
#include "module.h"
|
||||
|
||||
int do_status(User * u);
|
||||
void myChanServHelp(User * u);
|
||||
void myChanServHelp(User *u);
|
||||
|
||||
class CommandCSStatus : public Command
|
||||
{
|
||||
public:
|
||||
CommandCSStatus() : Command("STATUS", 2, 2)
|
||||
{
|
||||
}
|
||||
|
||||
CommandResult Execute(User *u, std::vector<std::string> ¶ms)
|
||||
{
|
||||
ChannelInfo *ci;
|
||||
User *u2;
|
||||
const char *nick, *chan;
|
||||
const char *temp = NULL;
|
||||
|
||||
chan = params[0].c_str();
|
||||
nick = params[1].c_str();
|
||||
if (!(ci = cs_findchan(chan)))
|
||||
{
|
||||
temp = chan;
|
||||
chan = nick;
|
||||
nick = temp;
|
||||
ci = cs_findchan(chan);
|
||||
}
|
||||
if (!ci)
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_NOT_REGGED, temp);
|
||||
else if (ci->flags & CI_VERBOTEN)
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_FORBIDDEN, chan);
|
||||
else if ((u2 = finduser(nick)))
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_INFO, chan, nick, get_access(u2, ci));
|
||||
else /* !u2 */
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_NOTONLINE, nick);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
bool OnHelp(User *u, const std::string &subcommand)
|
||||
{
|
||||
if (!is_services_admin(u))
|
||||
return false;
|
||||
|
||||
notice_lang(s_ChanServ, u, CHAN_SERVADMIN_HELP_STATUS);
|
||||
return true;
|
||||
}
|
||||
|
||||
void OnSyntaxError(User *u)
|
||||
{
|
||||
syntax_error(s_ChanServ, u, "STATUS", CHAN_STATUS_SYNTAX);
|
||||
}
|
||||
};
|
||||
|
||||
class CSStatus : public Module
|
||||
{
|
||||
public:
|
||||
CSStatus(const std::string &modname, const std::string &creator) : Module(modname, creator)
|
||||
{
|
||||
Command *c;
|
||||
|
||||
this->SetAuthor("Anope");
|
||||
this->SetVersion("$Id$");
|
||||
this->SetType(CORE);
|
||||
|
||||
c = createCommand("STATUS", do_status, is_services_admin, -1, -1, -1, CHAN_SERVADMIN_HELP_STATUS, CHAN_SERVADMIN_HELP_STATUS);
|
||||
this->AddCommand(CHANSERV, c, MOD_UNIQUE);
|
||||
this->AddCommand(CHANSERV, new CommandCSStatus(), MOD_UNIQUE);
|
||||
|
||||
this->SetChanHelp(myChanServHelp);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Add the help response to anopes /cs help output.
|
||||
* @param u The user who is requesting help
|
||||
**/
|
||||
void myChanServHelp(User * u)
|
||||
void myChanServHelp(User *u)
|
||||
{
|
||||
if (is_services_admin(u)) {
|
||||
if (is_services_admin(u))
|
||||
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_STATUS);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The /cs status command.
|
||||
* @param u The user who issued the command
|
||||
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
|
||||
**/
|
||||
int do_status(User * u)
|
||||
{
|
||||
ChannelInfo *ci;
|
||||
User *u2;
|
||||
char *nick, *chan;
|
||||
char *temp = NULL;
|
||||
|
||||
chan = strtok(NULL, " ");
|
||||
nick = strtok(NULL, " ");
|
||||
if (!nick || strtok(NULL, " ")) {
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_SYNTAX);
|
||||
return MOD_CONT;
|
||||
}
|
||||
if (!(ci = cs_findchan(chan))) {
|
||||
temp = chan;
|
||||
chan = nick;
|
||||
nick = temp;
|
||||
ci = cs_findchan(chan);
|
||||
}
|
||||
if (!ci) {
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_NOT_REGGED, temp);
|
||||
} else if (ci->flags & CI_VERBOTEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_FORBIDDEN, chan);
|
||||
return MOD_CONT;
|
||||
} else if ((u2 = finduser(nick)) != NULL) {
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_INFO, chan, nick,
|
||||
get_access(u2, ci));
|
||||
} else { /* !u2 */
|
||||
notice_lang(s_ChanServ, u, CHAN_STATUS_NOTONLINE, nick);
|
||||
}
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
MODULE_INIT("cs_status", CSStatus)
|
||||
|
||||
Reference in New Issue
Block a user