summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/bs_act.c102
-rw-r--r--src/core/bs_assign.c115
-rw-r--r--src/core/bs_badwords.c323
-rw-r--r--src/core/bs_bot.c178
-rw-r--r--src/core/bs_botlist.c110
-rw-r--r--src/core/bs_fantasy.c79
-rw-r--r--src/core/bs_fantasy_kick.c87
-rw-r--r--src/core/bs_fantasy_kickban.c89
-rw-r--r--src/core/bs_fantasy_owner.c78
-rw-r--r--src/core/bs_fantasy_seen.c128
-rw-r--r--src/core/bs_help.c44
-rw-r--r--src/core/bs_info.c451
-rw-r--r--src/core/bs_kick.c598
-rw-r--r--src/core/bs_say.c112
-rw-r--r--src/core/bs_set.c300
-rw-r--r--src/core/bs_unassign.c75
-rw-r--r--src/core/cs_access.c748
-rw-r--r--src/core/cs_akick.c852
-rw-r--r--src/core/cs_ban.c317
-rw-r--r--src/core/cs_clear.c596
-rw-r--r--src/core/cs_drop.c145
-rw-r--r--src/core/cs_forbid.c153
-rw-r--r--src/core/cs_getkey.c105
-rw-r--r--src/core/cs_getpass.c124
-rw-r--r--src/core/cs_help.c94
-rw-r--r--src/core/cs_identify.c131
-rw-r--r--src/core/cs_info.c301
-rw-r--r--src/core/cs_invite.c111
-rw-r--r--src/core/cs_kick.c173
-rw-r--r--src/core/cs_logout.c2
-rw-r--r--src/core/cs_register.c4
-rw-r--r--src/core/cs_sendpass.c2
-rw-r--r--src/core/cs_set.c12
-rw-r--r--src/core/cs_topic.c2
-rw-r--r--src/core/cs_xop.c2
-rw-r--r--src/core/he_help.c63
-rw-r--r--src/core/hs_del.c86
-rw-r--r--src/core/hs_delall.c98
-rw-r--r--src/core/hs_group.c140
-rw-r--r--src/core/hs_help.c49
-rw-r--r--src/core/hs_list.c260
-rw-r--r--src/core/hs_off.c77
-rw-r--r--src/core/hs_on.c106
-rw-r--r--src/core/hs_set.c257
-rw-r--r--src/core/hs_setall.c255
-rw-r--r--src/core/ms_cancel.c112
-rw-r--r--src/core/ms_check.c144
-rw-r--r--src/core/ms_del.c271
-rw-r--r--src/core/ms_help.c52
-rw-r--r--src/core/ms_info.c370
-rw-r--r--src/core/ms_list.c220
-rw-r--r--src/core/ms_read.c224
-rw-r--r--src/core/ms_rsend.c135
-rw-r--r--src/core/ms_send.c54
-rw-r--r--src/core/ms_sendall.c101
-rw-r--r--src/core/ms_set.c446
-rw-r--r--src/core/ms_staff.c96
-rw-r--r--src/core/ns_access.c246
-rw-r--r--src/core/ns_alist.c258
-rw-r--r--src/core/ns_drop.c202
-rw-r--r--src/core/ns_forbid.c171
-rw-r--r--src/core/ns_getemail.c99
-rw-r--r--src/core/ns_getpass.c125
-rw-r--r--src/core/ns_ghost.c136
-rw-r--r--src/core/ns_group.c512
-rw-r--r--src/core/ns_help.c74
-rw-r--r--src/core/ns_identify.c231
-rw-r--r--src/core/ns_info.c423
-rw-r--r--src/core/ns_list.c336
-rw-r--r--src/core/ns_logout.c162
-rw-r--r--src/core/ns_recover.c171
-rw-r--r--src/core/ns_register.c757
-rw-r--r--src/core/ns_release.c149
-rw-r--r--src/core/ns_saset.c918
-rw-r--r--src/core/ns_sendpass.c139
-rw-r--r--src/core/ns_set.c820
-rw-r--r--src/core/ns_status.c90
-rw-r--r--src/core/ns_suspend.c262
-rw-r--r--src/core/ns_update.c77
-rw-r--r--src/core/os_admin.c258
-rw-r--r--src/core/os_akill.c381
-rw-r--r--src/core/os_chankill.c158
-rw-r--r--src/core/os_chanlist.c132
-rw-r--r--src/core/os_clearmodes.c427
-rw-r--r--src/core/os_defcon.c192
-rw-r--r--src/core/os_global.c69
-rw-r--r--src/core/os_help.c51
-rw-r--r--src/core/os_ignore.c198
-rw-r--r--src/core/os_jupe.c87
-rw-r--r--src/core/os_kick.c103
-rw-r--r--src/core/os_logonnews.c94
-rw-r--r--src/core/os_mode.c104
-rw-r--r--src/core/os_modinfo.c118
-rw-r--r--src/core/os_modlist.c298
-rw-r--r--src/core/os_modload.c94
-rw-r--r--src/core/os_modunload.c92
-rw-r--r--src/core/os_news.c336
-rw-r--r--src/core/os_noop.c116
-rw-r--r--src/core/os_oline.c114
-rw-r--r--src/core/os_oper.c263
-rw-r--r--src/core/os_opernews.c87
-rw-r--r--src/core/os_quit.c64
-rw-r--r--src/core/os_randomnews.c54
-rw-r--r--src/core/os_raw.c64
-rw-r--r--src/core/os_reload.c68
-rw-r--r--src/core/os_restart.c76
-rw-r--r--src/core/os_session.c380
-rw-r--r--src/core/os_set.c336
-rw-r--r--src/core/os_shutdown.c64
-rw-r--r--src/core/os_sqline.c355
-rw-r--r--src/core/os_staff.c142
-rw-r--r--src/core/os_stats.c587
-rw-r--r--src/core/os_svsnick.c150
-rw-r--r--src/core/os_szline.c339
-rw-r--r--src/core/os_umode.c126
-rw-r--r--src/core/os_update.c49
-rw-r--r--src/core/os_userlist.c136
-rw-r--r--src/core/ss_main.c45
118 files changed, 12395 insertions, 11129 deletions
diff --git a/src/core/bs_act.c b/src/core/bs_act.c
index 0f2e34af2..f37f2d942 100644
--- a/src/core/bs_act.c
+++ b/src/core/bs_act.c
@@ -15,21 +15,78 @@
#include "module.h"
-int do_act(User * u);
void myBotServHelp(User * u);
+class CommandBSAct : public Command
+{
+ public:
+ CommandBSAct() : Command("ACT", 2, 2)
+ {
+
+ }
+
+ CommandReturn Execute(User *u, std::vector<std::string> &params)
+ {
+ ChannelInfo *ci;
+
+ if (!(ci = cs_findchan(params[0].c_str())))
+ {
+ notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, params[0].c_str());
+ return MOD_CONT;
+ }
+
+ if (ci->flags & CI_VERBOTEN)
+ {
+ notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, ci->name);
+ return MOD_CONT;
+ }
+
+ if (!ci->bi)
+ {
+ notice_help(s_BotServ, u, BOT_NOT_ASSIGNED);
+ return MOD_CONT;
+ }
+
+ if (!ci->c || ci->c->usercount < BSMinUsers)
+ {
+ notice_lang(s_BotServ, u, BOT_NOT_ON_CHANNEL, ci->name);
+ return MOD_CONT;
+ }
+
+ if (!check_access(u, ci, CA_SAY))
+ {
+ notice_lang(s_BotServ, u, ACCESS_DENIED);
+ return MOD_CONT;
+ }
+
+ size_t i = 0;
+ while ((i = params[1].find_first_of("\001"), i) && i != std::string::npos)
+ {
+ params[1].erase(i, 1);
+ }
+
+ ircdproto->SendAction(ci->bi, ci->name, "%s", params[1].c_str());
+ ci->bi->lastmsg = time(NULL);
+ if (LogBot && LogChannel && logchan && !debug && findchan(LogChannel))
+ ircdproto->SendPrivmsg(ci->bi, LogChannel, "ACT %s %s %s", u->nick, ci->name, params[1].c_str());
+ return MOD_CONT;
+ }
+
+ void OnBadSyntax(User *u)
+ {
+ syntax_error(s_BotServ, u, "ACT", BOT_ACT_SYNTAX);
+ }
+};
+
class BSAct : public Module
{
public:
BSAct(const std::string &modname, const std::string &creator) : Module(modname, creator)
{
- Command *c;
-
this->SetAuthor("Anope");
this->SetVersion("$Id$");
this->SetType(CORE);
- c = createCommand("ACT", do_act, NULL, BOT_HELP_ACT, -1, -1, -1, -1);
- this->AddCommand(BOTSERV, c, MOD_UNIQUE);
+ this->AddCommand(BOTSERV, new CommandBSAct(), MOD_UNIQUE);
this->SetBotHelp(myBotServHelp);
}
@@ -45,39 +102,4 @@ void myBotServHelp(User * u)
notice_lang(s_BotServ, u, BOT_HELP_CMD_ACT);
}
-/**
- * The /bs act command.
- * @param u The user who issued the command
- * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
- **/
-int do_act(User * u)
-{
- ChannelInfo *ci;
-
- char *chan = strtok(NULL, " ");
- char *text = strtok(NULL, "");
-
- if (!chan || !text)
- syntax_error(s_BotServ, u, "ACT", BOT_ACT_SYNTAX);
- else if (!(ci = cs_findchan(chan)))
- notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan);
- else if (ci->flags & CI_VERBOTEN)
- notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
- else if (!ci->bi)
- notice_help(s_BotServ, u, BOT_NOT_ASSIGNED);
- else if (!ci->c || ci->c->usercount < BSMinUsers)
- notice_lang(s_BotServ, u, BOT_NOT_ON_CHANNEL, ci->name);
- else if (!check_access(u, ci, CA_SAY))
- notice_lang(s_BotServ, u, ACCESS_DENIED);
- else {
- strnrepl(text, BUFSIZE, "\001", "");
- ircdproto->SendAction(ci->bi, ci->name, "%s", text);
- ci->bi->lastmsg = time(NULL);
- if (LogBot && LogChannel && logchan && !debug && findchan(LogChannel))
- ircdproto->SendPrivmsg(ci->bi, LogChannel, "ACT %s %s %s",
- u->nick, ci->name, text);
- }
- return MOD_CONT;
-}
-
MODULE_INIT("bs_act", BSAct)
diff --git a/src/core/bs_assign.c b/src/core/bs_assign.c
index 396031662..f9927e25d 100644
--- a/src/core/bs_assign.c
+++ b/src/core/bs_assign.c
@@ -15,21 +15,90 @@
#include "module.h"
-int do_assign(User * u);
void myBotServHelp(User * u);
+class CommandBSAssign : public Command
+{
+ public:
+ CommandBSAssign() : Command("ASSIGN", 1, 1)
+ {
+ }
+
+ CommandReturn Execute(User *u, std::vector<std::string> &params)
+ {
+ char *chan = strtok(NULL, " ");
+ char *nick = strtok(NULL, " ");
+ BotInfo *bi;
+ ChannelInfo *ci;
+
+ if (readonly)
+ {
+ notice_lang(s_BotServ, u, BOT_ASSIGN_READONLY);
+ return MOD_CONT;
+ }
+
+ if (!(bi = findbot(nick)))
+ {
+ notice_lang(s_BotServ, u, BOT_DOES_NOT_EXIST, nick);
+ return MOD_CONT;
+ }
+
+ if (bi->flags & BI_PRIVATE && !is_oper(u))
+ {
+ notice_lang(s_BotServ, u, PERMISSION_DENIED);
+ return MOD_CONT;
+ }
+
+ if (!(ci = cs_findchan(chan)))
+ {
+ notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan);
+ return MOD_CONT;
+ }
+
+ if (ci->flags & CI_VERBOTEN)
+ {
+ notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan);
+ return MOD_CONT;
+ }
+
+ if ((ci->bi) && (stricmp(ci->bi->nick, nick) == 0))
+ {
+ notice_lang(s_BotServ, u, BOT_ASSIGN_ALREADY, ci->bi->nick, chan);
+ return MOD_CONT;
+ }
+
+ if ((ci->botflags & BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !is_services_admin(u)))
+ {
+ notice_lang(s_BotServ, u, PERMISSION_DENIED);
+ return MOD_CONT;
+ }
+
+ bi->Assign(u, ci);
+ notice_lang(s_BotServ, u, BOT_ASSIGN_ASSIGNED, bi->nick, ci->name);
+ return MOD_CONT;
+ }
+
+ bool OnHelp(User *u, const std::string &subcommand)
+ {
+ notice_lang(s_BotServ, u, BOT_HELP_ASSIGN);
+ return true;
+ }
+
+ void OnSyntaxError(User *u)
+ {
+ syntax_error(s_BotServ, u, "ASSIGN", BOT_ASSIGN_SYNTAX);
+ }
+};
+
class BSAssign : public Module
{
public:
BSAssign(const std::string &modname, const std::string &creator) : Module(modname, creator)
{
- Command *c;
-
this->SetAuthor("Anope");
this->SetVersion("$Id$");
this->SetType(CORE);
- c = createCommand("ASSIGN", do_assign, NULL, BOT_HELP_ASSIGN, -1, -1, -1, -1);
- this->AddCommand(BOTSERV, c, MOD_UNIQUE);
+ this->AddCommand(BOTSERV, new CommandBSAssign, MOD_UNIQUE);
this->SetBotHelp(myBotServHelp);
}
@@ -44,40 +113,4 @@ void myBotServHelp(User * u)
notice_lang(s_BotServ, u, BOT_HELP_CMD_ASSIGN);
}
-/**
- * The /bs assign command.
- * @param u The user who issued the command
- * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
- **/
-int do_assign(User * u)