summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/commands.h10
-rw-r--r--modules/core/bs_act.cpp4
-rw-r--r--modules/core/bs_assign.cpp4
-rw-r--r--modules/core/bs_badwords.cpp4
-rw-r--r--modules/core/bs_bot.cpp4
-rw-r--r--modules/core/bs_botlist.cpp4
-rw-r--r--modules/core/bs_help.cpp4
-rw-r--r--modules/core/bs_info.cpp4
-rw-r--r--modules/core/bs_kick.cpp4
-rw-r--r--modules/core/bs_say.cpp4
-rw-r--r--modules/core/bs_set.cpp4
-rw-r--r--modules/core/bs_unassign.cpp4
-rw-r--r--modules/core/cs_access.cpp7
-rw-r--r--modules/core/cs_akick.cpp4
-rw-r--r--modules/core/cs_ban.cpp8
-rw-r--r--modules/core/cs_clear.cpp4
-rw-r--r--modules/core/cs_drop.cpp4
-rw-r--r--modules/core/cs_forbid.cpp4
-rw-r--r--modules/core/cs_getkey.cpp4
-rw-r--r--modules/core/cs_help.cpp4
-rw-r--r--modules/core/cs_info.cpp4
-rw-r--r--modules/core/cs_invite.cpp5
-rw-r--r--modules/core/cs_kick.cpp8
-rw-r--r--modules/core/cs_list.cpp6
-rw-r--r--modules/core/cs_modes.cpp43
-rw-r--r--modules/core/cs_register.cpp4
-rw-r--r--modules/core/cs_saset.cpp12
-rw-r--r--modules/core/cs_saset_noexpire.cpp8
-rw-r--r--modules/core/cs_set.cpp12
-rw-r--r--modules/core/cs_set_bantype.cpp15
-rw-r--r--modules/core/cs_set_description.cpp15
-rw-r--r--modules/core/cs_set_entrymsg.cpp15
-rw-r--r--modules/core/cs_set_founder.cpp15
-rw-r--r--modules/core/cs_set_keeptopic.cpp15
-rw-r--r--modules/core/cs_set_mlock.cpp15
-rw-r--r--modules/core/cs_set_opnotice.cpp15
-rw-r--r--modules/core/cs_set_peace.cpp15
-rw-r--r--modules/core/cs_set_persist.cpp15
-rw-r--r--modules/core/cs_set_private.cpp15
-rw-r--r--modules/core/cs_set_restricted.cpp15
-rw-r--r--modules/core/cs_set_secure.cpp15
-rw-r--r--modules/core/cs_set_securefounder.cpp15
-rw-r--r--modules/core/cs_set_secureops.cpp15
-rw-r--r--modules/core/cs_set_signkick.cpp15
-rw-r--r--modules/core/cs_set_successor.cpp15
-rw-r--r--modules/core/cs_set_topiclock.cpp15
-rw-r--r--modules/core/cs_set_xop.cpp15
-rw-r--r--modules/core/cs_status.cpp4
-rw-r--r--modules/core/cs_suspend.cpp7
-rw-r--r--modules/core/cs_topic.cpp4
-rw-r--r--modules/core/cs_unban.cpp4
-rw-r--r--modules/core/cs_xop.cpp20
-rw-r--r--modules/core/hs_del.cpp4
-rw-r--r--modules/core/hs_delall.cpp4
-rw-r--r--modules/core/hs_group.cpp4
-rw-r--r--modules/core/hs_help.cpp4
-rw-r--r--modules/core/hs_list.cpp4
-rw-r--r--modules/core/hs_off.cpp4
-rw-r--r--modules/core/hs_on.cpp4
-rw-r--r--modules/core/hs_set.cpp4
-rw-r--r--modules/core/hs_setall.cpp4
-rw-r--r--modules/core/ms_cancel.cpp4
-rw-r--r--modules/core/ms_check.cpp4
-rw-r--r--modules/core/ms_del.cpp4
-rw-r--r--modules/core/ms_help.cpp4
-rw-r--r--modules/core/ms_info.cpp4
-rw-r--r--modules/core/ms_list.cpp4
-rw-r--r--modules/core/ms_read.cpp4
-rw-r--r--modules/core/ms_rsend.cpp4
-rw-r--r--modules/core/ms_send.cpp4
-rw-r--r--modules/core/ms_sendall.cpp4
-rw-r--r--modules/core/ms_set.cpp4
-rw-r--r--modules/core/ms_staff.cpp4
-rw-r--r--modules/core/ns_access.cpp4
-rw-r--r--modules/core/ns_alist.cpp4
-rw-r--r--modules/core/ns_drop.cpp4
-rw-r--r--modules/core/ns_forbid.cpp4
-rw-r--r--modules/core/ns_getemail.cpp3
-rw-r--r--modules/core/ns_getpass.cpp4
-rw-r--r--modules/core/ns_ghost.cpp4
-rw-r--r--modules/core/ns_group.cpp10
-rw-r--r--modules/core/ns_help.cpp4
-rw-r--r--modules/core/ns_identify.cpp8
-rw-r--r--modules/core/ns_info.cpp4
-rw-r--r--modules/core/ns_list.cpp4
-rw-r--r--modules/core/ns_logout.cpp4
-rw-r--r--modules/core/ns_recover.cpp5
-rw-r--r--modules/core/ns_register.cpp12
-rw-r--r--modules/core/ns_release.cpp4
-rw-r--r--modules/core/ns_resetpass.cpp4
-rw-r--r--modules/core/ns_saset.cpp26
-rw-r--r--modules/core/ns_saset_noexpire.cpp8
-rw-r--r--modules/core/ns_sendpass.cpp4
-rw-r--r--modules/core/ns_set.cpp20
-rw-r--r--modules/core/ns_set_autoop.cpp15
-rw-r--r--modules/core/ns_set_email.cpp15
-rw-r--r--modules/core/ns_set_greet.cpp15
-rw-r--r--modules/core/ns_set_hide.cpp15
-rw-r--r--modules/core/ns_set_kill.cpp15
-rw-r--r--modules/core/ns_set_language.cpp15
-rw-r--r--modules/core/ns_set_message.cpp15
-rw-r--r--modules/core/ns_set_private.cpp15
-rw-r--r--modules/core/ns_set_secure.cpp15
-rw-r--r--modules/core/ns_status.cpp4
-rw-r--r--modules/core/ns_suspend.cpp7
-rw-r--r--modules/core/ns_update.cpp4
-rw-r--r--modules/core/os_akill.cpp4
-rw-r--r--modules/core/os_chankill.cpp4
-rw-r--r--modules/core/os_chanlist.cpp4
-rw-r--r--modules/core/os_clearmodes.cpp4
-rw-r--r--modules/core/os_defcon.cpp14
-rw-r--r--modules/core/os_global.cpp4
-rw-r--r--modules/core/os_help.cpp4
-rw-r--r--modules/core/os_ignore.cpp4
-rw-r--r--modules/core/os_jupe.cpp4
-rw-r--r--modules/core/os_kick.cpp4
-rw-r--r--modules/core/os_mode.cpp4
-rw-r--r--modules/core/os_modinfo.cpp4
-rw-r--r--modules/core/os_modlist.cpp4
-rw-r--r--modules/core/os_modload.cpp4
-rw-r--r--modules/core/os_modunload.cpp4
-rw-r--r--modules/core/os_news.cpp10
-rw-r--r--modules/core/os_noop.cpp4
-rw-r--r--modules/core/os_oline.cpp4
-rw-r--r--modules/core/os_quit.cpp4
-rw-r--r--modules/core/os_reload.cpp4
-rw-r--r--modules/core/os_restart.cpp4
-rw-r--r--modules/core/os_session.cpp7
-rw-r--r--modules/core/os_set.cpp4
-rw-r--r--modules/core/os_shutdown.cpp4
-rw-r--r--modules/core/os_snline.cpp4
-rw-r--r--modules/core/os_sqline.cpp4
-rw-r--r--modules/core/os_staff.cpp4
-rw-r--r--modules/core/os_stats.cpp4
-rw-r--r--modules/core/os_svsnick.cpp4
-rw-r--r--modules/core/os_szline.cpp4
-rw-r--r--modules/core/os_umode.cpp4
-rw-r--r--modules/core/os_update.cpp4
-rw-r--r--modules/core/os_userlist.cpp4
-rw-r--r--modules/core/ss_main.cpp4
-rw-r--r--modules/extra/cs_appendtopic.cpp4
-rw-r--r--modules/extra/cs_enforce.cpp4
-rw-r--r--modules/extra/cs_set_misc.cpp20
-rw-r--r--modules/extra/cs_tban.cpp4
-rw-r--r--modules/extra/hs_request.cpp13
-rw-r--r--modules/extra/ns_set_misc.cpp19
-rw-r--r--src/command.cpp10
-rw-r--r--src/module.cpp75
-rw-r--r--src/modules.cpp1
149 files changed, 743 insertions, 444 deletions
diff --git a/include/commands.h b/include/commands.h
index 0c8b7bae1..714d1c48d 100644
--- a/include/commands.h
+++ b/include/commands.h
@@ -106,9 +106,15 @@ class CoreExport Command : public Flags<CommandFlag>
virtual bool AddSubcommand(Command *c);
/** Delete a subcommand from this command
- * @param cname The subcommand name
+ * @param c The command
+ */
+ virtual bool DelSubcommand(Command *c);
+
+ /** Find a subcommand
+ * @param name The subcommand name
+ * @return The subcommand
*/
- virtual bool DelSubcommand(const Anope::string &cname);
+ virtual Command *FindSubcommand(const Anope::string &name);
};
#endif // COMMANDS_H
diff --git a/modules/core/bs_act.cpp b/modules/core/bs_act.cpp
index ecfe76e94..d553aa950 100644
--- a/modules/core/bs_act.cpp
+++ b/modules/core/bs_act.cpp
@@ -73,13 +73,15 @@ class CommandBSAct : public Command
class BSAct : public Module
{
+ CommandBSAct commandbsact;
+
public:
BSAct(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSAct());
+ this->AddCommand(BotServ, &commandbsact);
}
};
diff --git a/modules/core/bs_assign.cpp b/modules/core/bs_assign.cpp
index 22f5f4487..ab24b1f39 100644
--- a/modules/core/bs_assign.cpp
+++ b/modules/core/bs_assign.cpp
@@ -83,13 +83,15 @@ class CommandBSAssign : public Command
class BSAssign : public Module
{
+ CommandBSAssign commandbsassign;
+
public:
BSAssign(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSAssign);
+ this->AddCommand(BotServ, &commandbsassign);
}
};
diff --git a/modules/core/bs_badwords.cpp b/modules/core/bs_badwords.cpp
index e7dacb42b..92567252e 100644
--- a/modules/core/bs_badwords.cpp
+++ b/modules/core/bs_badwords.cpp
@@ -270,13 +270,15 @@ class CommandBSBadwords : public Command
class BSBadwords : public Module
{
+ CommandBSBadwords commandbsbadwords;
+
public:
BSBadwords(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSBadwords);
+ this->AddCommand(BotServ, &commandbsbadwords);
}
};
diff --git a/modules/core/bs_bot.cpp b/modules/core/bs_bot.cpp
index b8de7050c..fdff5ba5c 100644
--- a/modules/core/bs_bot.cpp
+++ b/modules/core/bs_bot.cpp
@@ -396,13 +396,15 @@ class CommandBSBot : public Command
class BSBot : public Module
{
+ CommandBSBot commandbsbot;
+
public:
BSBot(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSBot());
+ this->AddCommand(BotServ, &commandbsbot);
}
};
diff --git a/modules/core/bs_botlist.cpp b/modules/core/bs_botlist.cpp
index a54b50154..0dbb8bedf 100644
--- a/modules/core/bs_botlist.cpp
+++ b/modules/core/bs_botlist.cpp
@@ -81,13 +81,15 @@ class CommandBSBotList : public Command
class BSBotList : public Module
{
+ CommandBSBotList commandbsbotlist;
+
public:
BSBotList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSBotList());
+ this->AddCommand(BotServ, &commandbsbotlist);
}
};
diff --git a/modules/core/bs_help.cpp b/modules/core/bs_help.cpp
index 08146f827..c41472ad3 100644
--- a/modules/core/bs_help.cpp
+++ b/modules/core/bs_help.cpp
@@ -41,13 +41,15 @@ class CommandBSHelp : public Command
class BSHelp : public Module
{
+ CommandBSHelp commandbshelp;
+
public:
BSHelp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSHelp());
+ this->AddCommand(BotServ, &commandbshelp);
}
};
diff --git a/modules/core/bs_info.cpp b/modules/core/bs_info.cpp
index 65147d859..2f1dafb81 100644
--- a/modules/core/bs_info.cpp
+++ b/modules/core/bs_info.cpp
@@ -216,13 +216,15 @@ class CommandBSInfo : public Command
class BSInfo : public Module
{
+ CommandBSInfo commandbsinfo;
+
public:
BSInfo(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSInfo());
+ this->AddCommand(BotServ, &commandbsinfo);
}
};
diff --git a/modules/core/bs_kick.cpp b/modules/core/bs_kick.cpp
index 4936f0112..cb0253874 100644
--- a/modules/core/bs_kick.cpp
+++ b/modules/core/bs_kick.cpp
@@ -376,13 +376,15 @@ class CommandBSKick : public Command
class BSKick : public Module
{
+ CommandBSKick commandbskick;
+
public:
BSKick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSKick());
+ this->AddCommand(BotServ, &commandbskick);
}
};
diff --git a/modules/core/bs_say.cpp b/modules/core/bs_say.cpp
index 81616cf32..ca9e6bde3 100644
--- a/modules/core/bs_say.cpp
+++ b/modules/core/bs_say.cpp
@@ -79,13 +79,15 @@ class CommandBSSay : public Command
class BSSay : public Module
{
+ CommandBSSay commandbssay;
+
public:
BSSay(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSSay());
+ this->AddCommand(BotServ, &commandbssay);
}
};
diff --git a/modules/core/bs_set.cpp b/modules/core/bs_set.cpp
index 9788c278c..1a329ee4f 100644
--- a/modules/core/bs_set.cpp
+++ b/modules/core/bs_set.cpp
@@ -203,13 +203,15 @@ class CommandBSSet : public Command
class BSSet : public Module
{
+ CommandBSSet commandbsset;
+
public:
BSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSSet());
+ this->AddCommand(BotServ, &commandbsset);
}
};
diff --git a/modules/core/bs_unassign.cpp b/modules/core/bs_unassign.cpp
index 3c6a3ccb1..8dd01f7f5 100644
--- a/modules/core/bs_unassign.cpp
+++ b/modules/core/bs_unassign.cpp
@@ -61,13 +61,15 @@ class CommandBSUnassign : public Command
class BSUnassign : public Module
{
+ CommandBSUnassign commandbsunassign;
+
public:
BSUnassign(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(BotServ, new CommandBSUnassign);
+ this->AddCommand(BotServ, &commandbsunassign);
}
};
diff --git a/modules/core/cs_access.cpp b/modules/core/cs_access.cpp
index 74c72fcbb..23e5a415b 100644
--- a/modules/core/cs_access.cpp
+++ b/modules/core/cs_access.cpp
@@ -609,14 +609,17 @@ class CommandCSLevels : public Command
class CSAccess : public Module
{
+ CommandCSAccess commandcsaccess;
+ CommandCSLevels commandcslevels;
+
public:
CSAccess(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSAccess());
- this->AddCommand(ChanServ, new CommandCSLevels());
+ this->AddCommand(ChanServ, &commandcsaccess);
+ this->AddCommand(ChanServ, &commandcslevels);
}
};
diff --git a/modules/core/cs_akick.cpp b/modules/core/cs_akick.cpp
index 394669513..ee41c964b 100644
--- a/modules/core/cs_akick.cpp
+++ b/modules/core/cs_akick.cpp
@@ -571,13 +571,15 @@ class CommandCSAKick : public Command
class CSAKick : public Module
{
+ CommandCSAKick commandcsakick;
+
public:
CSAKick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSAKick());
+ this->AddCommand(ChanServ, &commandcsakick);
}
};
diff --git a/modules/core/cs_ban.cpp b/modules/core/cs_ban.cpp
index 08cbc45ad..20e97503a 100644
--- a/modules/core/cs_ban.cpp
+++ b/modules/core/cs_ban.cpp
@@ -92,14 +92,16 @@ class CommandCSBan : public Command
class CSBan : public Module
{
+ CommandCSBan commandcsban, commandcskb;
+
public:
- CSBan(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
+ CSBan(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator), commandcsban("BAN"), commandcskb("KB")
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSBan("BAN"));
- this->AddCommand(ChanServ, new CommandCSBan("KB"));
+ this->AddCommand(ChanServ, &commandcsban);
+ this->AddCommand(ChanServ, &commandcskb);
}
};
diff --git a/modules/core/cs_clear.cpp b/modules/core/cs_clear.cpp
index 910552ac2..f62e2b5f0 100644
--- a/modules/core/cs_clear.cpp
+++ b/modules/core/cs_clear.cpp
@@ -162,13 +162,15 @@ class CommandCSClear : public Command
class CSClear : public Module
{
+ CommandCSClear commandcsclear;
+
public:
CSClear(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSClear());
+ this->AddCommand(ChanServ, &commandcsclear);
}
};
diff --git a/modules/core/cs_drop.cpp b/modules/core/cs_drop.cpp
index cfbad70fa..5136772b2 100644
--- a/modules/core/cs_drop.cpp
+++ b/modules/core/cs_drop.cpp
@@ -104,13 +104,15 @@ class CommandCSDrop : public Command
class CSDrop : public Module
{
+ CommandCSDrop commandcsdrop;
+
public:
CSDrop(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSDrop());
+ this->AddCommand(ChanServ, &commandcsdrop);
}
};
diff --git a/modules/core/cs_forbid.cpp b/modules/core/cs_forbid.cpp
index 94ad125b9..004b523cc 100644
--- a/modules/core/cs_forbid.cpp
+++ b/modules/core/cs_forbid.cpp
@@ -116,13 +116,15 @@ class CommandCSForbid : public Command
class CSForbid : public Module
{
+ CommandCSForbid commandcsforbid;
+
public:
CSForbid(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSForbid());
+ this->AddCommand(ChanServ, &commandcsforbid);
}
};
diff --git a/modules/core/cs_getkey.cpp b/modules/core/cs_getkey.cpp
index 80fa564e8..c95330f60 100644
--- a/modules/core/cs_getkey.cpp
+++ b/modules/core/cs_getkey.cpp
@@ -63,13 +63,15 @@ class CommandCSGetKey : public Command
class CSGetKey : public Module
{
+ CommandCSGetKey commandcsgetkey;
+
public:
CSGetKey(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSGetKey());
+ this->AddCommand(ChanServ, &commandcsgetkey);
}
};
diff --git a/modules/core/cs_help.cpp b/modules/core/cs_help.cpp
index 0a6ba7aaf..168c5fa07 100644
--- a/modules/core/cs_help.cpp
+++ b/modules/core/cs_help.cpp
@@ -61,13 +61,15 @@ class CommandCSHelp : public Command
class CSHelp : public Module
{
+ CommandCSHelp commandcshelp;
+
public:
CSHelp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSHelp());
+ this->AddCommand(ChanServ, &commandcshelp);
}
};
diff --git a/modules/core/cs_info.cpp b/modules/core/cs_info.cpp
index 5f135ce4d..82722fe03 100644
--- a/modules/core/cs_info.cpp
+++ b/modules/core/cs_info.cpp
@@ -146,13 +146,15 @@ class CommandCSInfo : public Command
class CSInfo : public Module
{
+ CommandCSInfo commandcsinfo;
+
public:
CSInfo(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSInfo());
+ this->AddCommand(ChanServ, &commandcsinfo);
}
};
diff --git a/modules/core/cs_invite.cpp b/modules/core/cs_invite.cpp
index 011a0bcf3..c4f3bd4fa 100644
--- a/modules/core/cs_invite.cpp
+++ b/modules/core/cs_invite.cpp
@@ -82,12 +82,15 @@ class CommandCSInvite : public Command
class CSInvite : public Module
{
+ CommandCSInvite commandcsinvite;
+
public:
CSInvite(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSInvite());
+
+ this->AddCommand(ChanServ, &commandcsinvite);
}
};
diff --git a/modules/core/cs_kick.cpp b/modules/core/cs_kick.cpp
index 44bfc6d89..5654e4479 100644
--- a/modules/core/cs_kick.cpp
+++ b/modules/core/cs_kick.cpp
@@ -78,14 +78,16 @@ class CommandCSKick : public Command
class CSKick : public Module
{
+ CommandCSKick commandcskick, commandcsk;
+
public:
- CSKick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
+ CSKick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator), commandcskick("KICK"), commandcsk("K")
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSKick("KICK"));
- this->AddCommand(ChanServ, new CommandCSKick("K"));
+ this->AddCommand(ChanServ, &commandcskick);
+ this->AddCommand(ChanServ, &commandcsk);
}
};
diff --git a/modules/core/cs_list.cpp b/modules/core/cs_list.cpp
index d6a55d774..284f90e84 100644
--- a/modules/core/cs_list.cpp
+++ b/modules/core/cs_list.cpp
@@ -148,13 +148,15 @@ public:
class CSList : public Module
{
-public:
+ CommandCSList commandcslist;
+
+ public:
CSList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSList());
+ this->AddCommand(ChanServ, &commandcslist);
}
};
diff --git a/modules/core/cs_modes.cpp b/modules/core/cs_modes.cpp
index 5825b7a97..66f882147 100644
--- a/modules/core/cs_modes.cpp
+++ b/modules/core/cs_modes.cpp
@@ -399,16 +399,27 @@ class CommandCSDeOwner : public Command
class CSModes : public Module
{
+ CommandCSOwner commandcsowner;
+ CommandCSDeOwner commandcsdeowner;
+ CommandCSProtect commandcsprotect;
+ CommandCSDeProtect commandcsdeprotect;
+ CommandCSOp commandcsop;
+ CommandCSDeOp commandcsdeop;
+ CommandCSHalfOp commandcshalfop;
+ CommandCSDeHalfOp commandcsdehalfop;
+ CommandCSVoice commandcsvoice;
+ CommandCSDeVoice commandcsdevoice;
+
public:
CSModes(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSOp());
- this->AddCommand(ChanServ, new CommandCSDeOp());
- this->AddCommand(ChanServ, new CommandCSVoice());
- this->AddCommand(ChanServ, new CommandCSDeVoice());
+ this->AddCommand(ChanServ, &commandcsop);
+ this->AddCommand(ChanServ, &commandcsdeop);
+ this->AddCommand(ChanServ, &commandcsvoice);
+ this->AddCommand(ChanServ, &commandcsdevoice);
if (Me && Me->IsSynced())
OnUplinkSync(NULL);
@@ -421,31 +432,31 @@ class CSModes : public Module
{
if (ModeManager::FindChannelModeByName(CMODE_OWNER))
{
- this->AddCommand(ChanServ, new CommandCSOwner());
- this->AddCommand(ChanServ, new CommandCSDeOwner());
+ this->AddCommand(ChanServ, &commandcsowner);
+ this->AddCommand(ChanServ, &commandcsdeowner);
}
if (ModeManager::FindChannelModeByName(CMODE_PROTECT))
{
- this->AddCommand(ChanServ, new CommandCSProtect());
- this->AddCommand(ChanServ, new CommandCSDeProtect());
+ this->AddCommand(ChanServ, &commandcsprotect);
+ this->AddCommand(ChanServ, &commandcsdeprotect);
}
if (ModeManager::FindChannelModeByName(CMODE_HALFOP))
{
- this->AddCommand(ChanServ, new CommandCSHalfOp());
- this->AddCommand(ChanServ, new CommandCSDeHalfOp());
+ this->AddCommand(ChanServ, &commandcshalfop);
+ this->AddCommand(ChanServ, &commandcsdehalfop);
}
}
void OnServerDisconnect()
{
- this->DelCommand(ChanServ, FindCommand(ChanServ, "OWNER"));
- this->DelCommand(ChanServ, FindCommand(ChanServ, "DEOWNER"));
- this->DelCommand(ChanServ, FindCommand(ChanServ, "PROTECT"));
- this->DelCommand(ChanServ, FindCommand(ChanServ, "DEPROTECT"));
- this->DelCommand(ChanServ, FindCommand(ChanServ, "HALFOP"));
- this->DelCommand(ChanServ, FindCommand(ChanServ, "DEHALFOP"));
+ this->DelCommand(ChanServ, &commandcsowner);
+ this->DelCommand(ChanServ, &commandcsdeowner);
+ this->DelCommand(ChanServ, &commandcsprotect);
+ this->DelCommand(ChanServ, &commandcsdeprotect);
+ this->DelCommand(ChanServ, &commandcshalfop);
+ this->DelCommand(ChanServ, &commandcsdehalfop);
}
};
diff --git a/modules/core/cs_register.cpp b/modules/core/cs_register.cpp
index 997247d65..5e570f40e 100644
--- a/modules/core/cs_register.cpp
+++ b/modules/core/cs_register.cpp
@@ -113,13 +113,15 @@ class CommandCSRegister : public Command
class CSRegister : public Module
{
+ CommandCSRegister commandcsregister;
+
public:
CSRegister(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSRegister());
+ this->AddCommand(ChanServ, &commandcsregister);
}
};
diff --git a/modules/core/cs_saset.cpp b/modules/core/cs_saset.cpp
index ef139e90a..d00521645 100644
--- a/modules/core/cs_saset.cpp
+++ b/modules/core/cs_saset.cpp
@@ -19,14 +19,12 @@ class CommandCSSASet : public Command
subcommand_map subcommands;
public:
- CommandCSSASet(const Anope::string &cname) : Command(cname, 2, 3)
+ CommandCSSASet() : Command("SASET", 2, 3)
{
}
~CommandCSSASet()
{
- for (subcommand_map::const_iterator it = this->subcommands.begin(), it_end = this->subcommands.end(); it != it_end; ++it)
- delete it->second;
this->subcommands.clear();
}
@@ -92,9 +90,9 @@ class CommandCSSASet : public Command
return this->subcommands.insert(std::make_pair(c->name, c)).second;
}
- bool DelSubcommand(const Anope::string &command)
+ bool DelSubcommand(Command *c)
{
- return this->subcommands.erase(command);
+ return this->subcommands.erase(c->name);
}
Command *FindCommand(const Anope::string &subcommand)
@@ -110,13 +108,15 @@ class CommandCSSASet : public Command
class CSSASet : public Module
{
+ CommandCSSASet commandcssaset;
+
public:
CSSASet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSSASet("SASET"));
+ this->AddCommand(ChanServ, &commandcssaset);
}
};
diff --git a/modules/core/cs_saset_noexpire.cpp b/modules/core/cs_saset_noexpire.cpp
index a89f30c36..449239983 100644
--- a/modules/core/cs_saset_noexpire.cpp
+++ b/modules/core/cs_saset_noexpire.cpp
@@ -16,7 +16,7 @@
class CommandCSSASetNoexpire : public Command
{
public:
- CommandCSSASetNoexpire(const Anope::string &cname) : Command(cname, 2, 2, "chanserv/saset/noexpire")
+ CommandCSSASetNoexpire() : Command("NOEXPIRE", 2, 2, "chanserv/saset/noexpire")
{
}
@@ -61,6 +61,8 @@ class CommandCSSASetNoexpire : public Command
class CSSetNoexpire : public Module
{
+ CommandCSSASetNoexpire commandcssasetnoexpire;
+
public:
CSSetNoexpire(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -69,14 +71,14 @@ class CSSetNoexpire : public Module
Command *c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetNoexpire("NOEXPIRE"));
+ c->AddSubcommand(&commandcssasetnoexpire);
}
~CSSetNoexpire()
{
Command *c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("NOEXPIRE");
+ c->DelSubcommand(&commandcssasetnoexpire);
}
};
diff --git a/modules/core/cs_set.cpp b/modules/core/cs_set.cpp
index 219fbb3c1..49c5ca0fe 100644
--- a/modules/core/cs_set.cpp
+++ b/modules/core/cs_set.cpp
@@ -19,14 +19,12 @@ class CommandCSSet : public Command
subcommand_map subcommands;
public:
- CommandCSSet(const Anope::string &cname) : Command(cname, 2, 3)
+ CommandCSSet() : Command("SET", 2, 3)
{
}
~CommandCSSet()
{
- for (subcommand_map::const_iterator it = this->subcommands.begin(), it_end = this->subcommands.end(); it != it_end; ++it)
- delete it->second;
this->subcommands.clear();
}
@@ -97,9 +95,9 @@ class CommandCSSet : public Command
return this->subcommands.insert(std::make_pair(c->name, c)).second;
}
- bool DelSubcommand(const Anope::string &command)
+ bool DelSubcommand(Command *c)
{
- return this->subcommands.erase(command);
+ return this->subcommands.erase(c->name);
}
Command *FindCommand(const Anope::string &subcommand)
@@ -115,13 +113,15 @@ class CommandCSSet : public Command
class CSSet : public Module
{
+ CommandCSSet commandcsset;
+
public:
CSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSSet("SET"));
+ this->AddCommand(ChanServ, &commandcsset);
}
};
diff --git a/modules/core/cs_set_bantype.cpp b/modules/core/cs_set_bantype.cpp
index 90041c7e6..6f0830a55 100644
--- a/modules/core/cs_set_bantype.cpp
+++ b/modules/core/cs_set_bantype.cpp
@@ -16,7 +16,7 @@
class CommandCSSetBanType : public Command
{
public:
- CommandCSSetBanType(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetBanType(const Anope::string &cpermission = "") : Command("BANTYPE", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetBanType : public Command
class CommandCSSASetBanType : public CommandCSSetBanType
{
public:
- CommandCSSASetBanType(const Anope::string &cname) : CommandCSSetBanType(cname, "chanserv/saset/bantype")
+ CommandCSSASetBanType() : CommandCSSetBanType("chanserv/saset/bantype")
{
}
@@ -81,6 +81,9 @@ class CommandCSSASetBanType : public CommandCSSetBanType
class CSSetBanType : public Module
{
+ CommandCSSetBanType commandcssetbantype;
+ CommandCSSASetBanType commandcssasetbantype;
+
public:
CSSetBanType(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -89,22 +92,22 @@ class CSSetBanType : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetBanType("BANTYPE"));
+ c->AddSubcommand(&commandcssetbantype);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetBanType("BANTYPE"));
+ c->AddSubcommand(&commandcssasetbantype);
}
~CSSetBanType()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("BANTYPE");
+ c->DelSubcommand(&commandcssetbantype);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("BANTYPE");
+ c->DelSubcommand(&commandcssasetbantype);
}
};
diff --git a/modules/core/cs_set_description.cpp b/modules/core/cs_set_description.cpp
index 9186b55ab..a00a6d24e 100644
--- a/modules/core/cs_set_description.cpp
+++ b/modules/core/cs_set_description.cpp
@@ -16,7 +16,7 @@
class CommandCSSetDescription : public Command
{
public:
- CommandCSSetDescription(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetDescription(const Anope::string &cpermission = "") : Command("DESC", 2, 2, cpermission)
{
}
@@ -54,7 +54,7 @@ class CommandCSSetDescription : public Command
class CommandCSSASetDescription : public CommandCSSetDescription
{
public:
- CommandCSSASetDescription(const Anope::string &cname) : CommandCSSetDescription(cname, "chanserv/saset/description")
+ CommandCSSASetDescription() : CommandCSSetDescription("chanserv/saset/description")
{
}
@@ -73,6 +73,9 @@ class CommandCSSASetDescription : public CommandCSSetDescription
class CSSetDescription : public Module
{
+ CommandCSSetDescription commandcssetdescription;
+ CommandCSSASetDescription commandcssasetdescription;
+
public:
CSSetDescription(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -81,22 +84,22 @@ class CSSetDescription : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetDescription("DESC"));
+ c->AddSubcommand(&commandcssetdescription);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetDescription("DESC"));
+ c->AddSubcommand(&commandcssasetdescription);
}
~CSSetDescription()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("DESC");
+ c->DelSubcommand(&commandcssetdescription);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("DESC");
+ c->DelSubcommand(&commandcssasetdescription);
}
};
diff --git a/modules/core/cs_set_entrymsg.cpp b/modules/core/cs_set_entrymsg.cpp
index 362a5eea3..2e56cdba9 100644
--- a/modules/core/cs_set_entrymsg.cpp
+++ b/modules/core/cs_set_entrymsg.cpp
@@ -16,7 +16,7 @@
class CommandCSSetEntryMsg : public Command
{
public:
- CommandCSSetEntryMsg(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 1, 2, cpermission)
+ CommandCSSetEntryMsg(const Anope::string &cpermission = "") : Command("ENTRYMSG", 1, 2, cpermission)
{
}
@@ -61,7 +61,7 @@ class CommandCSSetEntryMsg : public Command
class CommandCSSASetEntryMsg : public CommandCSSetEntryMsg
{
public:
- CommandCSSASetEntryMsg(const Anope::string &cname) : CommandCSSetEntryMsg(cname, "chanserv/saset/entrymsg")
+ CommandCSSASetEntryMsg() : CommandCSSetEntryMsg("chanserv/saset/entrymsg")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetEntryMsg : public CommandCSSetEntryMsg
class CSSetEntryMsg : public Module
{
+ CommandCSSetEntryMsg commandcssetentrymsg;
+ CommandCSSASetEntryMsg commandcssasetentrymsg;
+
public:
CSSetEntryMsg(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetEntryMsg : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetEntryMsg("ENTRYMSG"));
+ c->AddSubcommand(&commandcssetentrymsg);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetEntryMsg("ENTRYMSG"));
+ c->AddSubcommand(&commandcssasetentrymsg);
}
~CSSetEntryMsg()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("ENTRYMSG");
+ c->DelSubcommand(&commandcssetentrymsg);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("ENTRYMSG");
+ c->DelSubcommand(&commandcssasetentrymsg);
}
};
diff --git a/modules/core/cs_set_founder.cpp b/modules/core/cs_set_founder.cpp
index 4fb83a9ec..5daefcba9 100644
--- a/modules/core/cs_set_founder.cpp
+++ b/modules/core/cs_set_founder.cpp
@@ -16,7 +16,7 @@
class CommandCSSetFounder : public Command
{
public:
- CommandCSSetFounder(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetFounder(const Anope::string &cpermission = "") : Command("FOUNDER", 2, 2, cpermission)
{
}
@@ -89,7 +89,7 @@ class CommandCSSetFounder : public Command
class CommandCSSASetFounder : public CommandCSSetFounder
{
public:
- CommandCSSASetFounder(const Anope::string &cname) : CommandCSSetFounder(cname, "chanserv/saset/founder")
+ CommandCSSASetFounder() : CommandCSSetFounder("chanserv/saset/founder")
{
}
@@ -108,6 +108,9 @@ class CommandCSSASetFounder : public CommandCSSetFounder
class CSSetFounder : public Module
{
+ CommandCSSetFounder commandcssetfounder;
+ CommandCSSASetFounder commandcssasetfounder;
+
public:
CSSetFounder(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -116,22 +119,22 @@ class CSSetFounder : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetFounder("FOUNDER"));
+ c->AddSubcommand(&commandcssetfounder);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetFounder("FOUNDER"));
+ c->AddSubcommand(&commandcssasetfounder);
}
~CSSetFounder()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("FOUNDER");
+ c->DelSubcommand(&commandcssetfounder);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("FOUNDER");
+ c->DelSubcommand(&commandcssasetfounder);
}
};
diff --git a/modules/core/cs_set_keeptopic.cpp b/modules/core/cs_set_keeptopic.cpp
index 28a6cd550..df494f48b 100644
--- a/modules/core/cs_set_keeptopic.cpp
+++ b/modules/core/cs_set_keeptopic.cpp
@@ -16,7 +16,7 @@
class CommandCSSetKeepTopic : public Command
{
public:
- CommandCSSetKeepTopic(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetKeepTopic(const Anope::string &cpermission = "") : Command("KEEPTOPIC", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetKeepTopic : public Command
class CommandCSSASetKeepTopic : public CommandCSSetKeepTopic
{
public:
- CommandCSSASetKeepTopic(const Anope::string &cname) : CommandCSSetKeepTopic(cname, "chanserv/saset/keeptopic")
+ CommandCSSASetKeepTopic() : CommandCSSetKeepTopic("chanserv/saset/keeptopic")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetKeepTopic : public CommandCSSetKeepTopic
class CSSetKeepTopic : public Module
{
+ CommandCSSetKeepTopic commandcssetkeeptopic;
+ CommandCSSASetKeepTopic commandcssasetkeeptopic;
+
public:
CSSetKeepTopic(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetKeepTopic : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetKeepTopic("KEEPTOPIC"));
+ c->AddSubcommand(&commandcssetkeeptopic);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetKeepTopic("KEEPTOPIC"));
+ c->AddSubcommand(&commandcssasetkeeptopic);
}
~CSSetKeepTopic()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("KEEPTOPIC");
+ c->DelSubcommand(&commandcssetkeeptopic);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("KEEPTOPIC");
+ c->DelSubcommand(&commandcssasetkeeptopic);
}
};
diff --git a/modules/core/cs_set_mlock.cpp b/modules/core/cs_set_mlock.cpp
index ec41913b9..263f7e477 100644
--- a/modules/core/cs_set_mlock.cpp
+++ b/modules/core/cs_set_mlock.cpp
@@ -16,7 +16,7 @@
class CommandCSSetMLock : public Command
{
public:
- CommandCSSetMLock(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 1, 0, cpermission)
+ CommandCSSetMLock(const Anope::string &cpermission = "") : Command("MLOCK", 1, 0, cpermission)
{
}
@@ -133,7 +133,7 @@ class CommandCSSetMLock : public Command
class CommandCSSASetMLock : public CommandCSSetMLock
{
public:
- CommandCSSASetMLock(const Anope::string &cname) : CommandCSSetMLock(cname, "chanserv/saset/mlock")
+ CommandCSSASetMLock() : CommandCSSetMLock("chanserv/saset/mlock")
{
}
@@ -152,6 +152,9 @@ class CommandCSSASetMLock : public CommandCSSetMLock
class CSSetMLock : public Module
{
+ CommandCSSetMLock commandcssetmlock;
+ CommandCSSASetMLock commandcssasetmlock;
+
public:
CSSetMLock(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -160,22 +163,22 @@ class CSSetMLock : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetMLock("MLOCK"));
+ c->AddSubcommand(&commandcssetmlock);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetMLock("MLOCK"));
+ c->AddSubcommand(&commandcssasetmlock);
}
~CSSetMLock()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("MLOCK");
+ c->DelSubcommand(&commandcssetmlock);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("MLOCK");
+ c->DelSubcommand(&commandcssasetmlock);
}
};
diff --git a/modules/core/cs_set_opnotice.cpp b/modules/core/cs_set_opnotice.cpp
index 2b835451c..69db85109 100644
--- a/modules/core/cs_set_opnotice.cpp
+++ b/modules/core/cs_set_opnotice.cpp
@@ -16,7 +16,7 @@
class CommandCSSetOpNotice : public Command
{
public:
- CommandCSSetOpNotice(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetOpNotice(const Anope::string &cpermission = "") : Command("OPNOTICE", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetOpNotice : public Command
class CommandCSSASetOpNotice : public CommandCSSetOpNotice
{
public:
- CommandCSSASetOpNotice(const Anope::string &cname) : CommandCSSetOpNotice(cname, "chanserv/saset/opnotice")
+ CommandCSSASetOpNotice() : CommandCSSetOpNotice("chanserv/saset/opnotice")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetOpNotice : public CommandCSSetOpNotice
class CSSetOpNotice : public Module
{
+ CommandCSSetOpNotice commandcssetopnotice;
+ CommandCSSASetOpNotice commandcssasetopnotice;
+
public:
CSSetOpNotice(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetOpNotice : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetOpNotice("OPNOTICE"));
+ c->AddSubcommand(&commandcssetopnotice);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetOpNotice("OPNOTICE"));
+ c->AddSubcommand(&commandcssasetopnotice);
}
~CSSetOpNotice()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("OPNOTICE");
+ c->DelSubcommand(&commandcssetopnotice);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("OPNOTICE");
+ c->DelSubcommand(&commandcssasetopnotice);
}
};
diff --git a/modules/core/cs_set_peace.cpp b/modules/core/cs_set_peace.cpp
index aa058b416..f8c21132a 100644
--- a/modules/core/cs_set_peace.cpp
+++ b/modules/core/cs_set_peace.cpp
@@ -16,7 +16,7 @@
class CommandCSSetPeace : public Command
{
public:
- CommandCSSetPeace(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetPeace(const Anope::string &cpermission = "") : Command("PEACE", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetPeace : public Command
class CommandCSSASetPeace : public CommandCSSetPeace
{
public:
- CommandCSSASetPeace(const Anope::string &cname) : CommandCSSetPeace(cname, "chanserv/saset/peace")
+ CommandCSSASetPeace() : CommandCSSetPeace("chanserv/saset/peace")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetPeace : public CommandCSSetPeace
class CSSetPeace : public Module
{
+ CommandCSSetPeace commandcssetpeace;
+ CommandCSSASetPeace commandcssasetpeace;
+
public:
CSSetPeace(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetPeace : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetPeace("PEACE"));
+ c->AddSubcommand(&commandcssetpeace);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetPeace("PEACE"));
+ c->AddSubcommand(&commandcssasetpeace);
}
~CSSetPeace()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("PEACE");
+ c->DelSubcommand(&commandcssetpeace);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("PEACE");
+ c->DelSubcommand(&commandcssasetpeace);
}
};
diff --git a/modules/core/cs_set_persist.cpp b/modules/core/cs_set_persist.cpp
index 2ab310f2a..4b650327d 100644
--- a/modules/core/cs_set_persist.cpp
+++ b/modules/core/cs_set_persist.cpp
@@ -16,7 +16,7 @@
class CommandCSSetPersist : public Command
{
public:
- CommandCSSetPersist(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetPersist(const Anope::string &cpermission = "") : Command("PERSIST", 2, 2, cpermission)
{
}
@@ -107,7 +107,7 @@ class CommandCSSetPersist : public Command
class CommandCSSASetPersist : public CommandCSSetPersist
{
public:
- CommandCSSASetPersist(const Anope::string &cname) : CommandCSSetPersist(cname, "chanserv/saset/persist")
+ CommandCSSASetPersist() : CommandCSSetPersist("chanserv/saset/persist")
{
}
@@ -125,6 +125,9 @@ class CommandCSSASetPersist : public CommandCSSetPersist
class CSSetPersist : public Module
{
+ CommandCSSetPersist commandcssetpeace;
+ CommandCSSASetPersist commandcssasetpeace;
+
public:
CSSetPersist(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -133,22 +136,22 @@ class CSSetPersist : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetPersist("PERSIST"));
+ c->AddSubcommand(&commandcssetpeace);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetPersist("PERSIST"));
+ c->AddSubcommand(&commandcssasetpeace);
}
~CSSetPersist()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("PERSIST");
+ c->DelSubcommand(&commandcssetpeace);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("PERSIST");
+ c->DelSubcommand(&commandcssasetpeace);
}
};
diff --git a/modules/core/cs_set_private.cpp b/modules/core/cs_set_private.cpp
index 7d1cd0d82..68ed17fa5 100644
--- a/modules/core/cs_set_private.cpp
+++ b/modules/core/cs_set_private.cpp
@@ -16,7 +16,7 @@
class CommandCSSetPrivate : public Command
{
public:
- CommandCSSetPrivate(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetPrivate(const Anope::string &cpermission = "") : Command("PRIVATE", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetPrivate : public Command
class CommandCSSASetPrivate : public CommandCSSetPrivate
{
public:
- CommandCSSASetPrivate(const Anope::string &cname) : CommandCSSetPrivate(cname, "chanserv/saset/private")
+ CommandCSSASetPrivate() : CommandCSSetPrivate("chanserv/saset/private")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetPrivate : public CommandCSSetPrivate
class CSSetPrivate : public Module
{
+ CommandCSSetPrivate commandcssetprivate;
+ CommandCSSASetPrivate commandcssasetprivate;
+
public:
CSSetPrivate(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetPrivate : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetPrivate("PRIVATE"));
+ c->AddSubcommand(&commandcssetprivate);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetPrivate("PRIVATE"));
+ c->AddSubcommand(&commandcssasetprivate);
}
~CSSetPrivate()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("PRIVATE");
+ c->DelSubcommand(&commandcssetprivate);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("PRIVATE");
+ c->DelSubcommand(&commandcssasetprivate);
}
};
diff --git a/modules/core/cs_set_restricted.cpp b/modules/core/cs_set_restricted.cpp
index e51024baa..23531c80b 100644
--- a/modules/core/cs_set_restricted.cpp
+++ b/modules/core/cs_set_restricted.cpp
@@ -15,7 +15,7 @@
class CommandCSSetRestricted : public Command
{
public:
- CommandCSSetRestricted(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetRestricted(const Anope::string &cpermission = "") : Command("RESTRICTED", 2, 2, cpermission)
{
}
@@ -65,7 +65,7 @@ class CommandCSSetRestricted : public Command
class CommandCSSASetRestricted : public CommandCSSetRestricted
{
public:
- CommandCSSASetRestricted(const Anope::string &cname) : CommandCSSetRestricted(cname, "chanserv/saset/restricted")
+ CommandCSSASetRestricted() : CommandCSSetRestricted("chanserv/saset/restricted")
{
}
@@ -83,6 +83,9 @@ class CommandCSSASetRestricted : public CommandCSSetRestricted
class CSSetRestricted : public Module
{
+ CommandCSSetRestricted commandcssetrestricted;
+ CommandCSSASetRestricted commandcssasetrestricted;
+
public:
CSSetRestricted(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -91,22 +94,22 @@ class CSSetRestricted : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetRestricted("RESTRICTED"));
+ c->AddSubcommand(&commandcssetrestricted);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetRestricted("RESTRICTED"));
+ c->AddSubcommand(&commandcssasetrestricted);
}
~CSSetRestricted()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("RESTRICTED");
+ c->DelSubcommand(&commandcssetrestricted);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("RESTRICTED");
+ c->DelSubcommand(&commandcssasetrestricted);
}
};
diff --git a/modules/core/cs_set_secure.cpp b/modules/core/cs_set_secure.cpp
index 98babf1d7..9e25c45be 100644
--- a/modules/core/cs_set_secure.cpp
+++ b/modules/core/cs_set_secure.cpp
@@ -16,7 +16,7 @@
class CommandCSSetSecure : public Command
{
public:
- CommandCSSetSecure(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetSecure(const Anope::string &cpermission = "") : Command("SECURE", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetSecure : public Command
class CommandCSSASetSecure : public CommandCSSetSecure
{
public:
- CommandCSSASetSecure(const Anope::string &cname) : CommandCSSetSecure(cname, "chanserv/saset/secure")
+ CommandCSSASetSecure() : CommandCSSetSecure("chanserv/saset/secure")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetSecure : public CommandCSSetSecure
class CSSetSecure : public Module
{
+ CommandCSSetSecure commandcssetsecure;
+ CommandCSSASetSecure commandcssasetsecure;
+
public:
CSSetSecure(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetSecure : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetSecure("SECURE"));
+ c->AddSubcommand(&commandcssetsecure);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetSecure("SECURE"));
+ c->AddSubcommand(&commandcssasetsecure);
}
~CSSetSecure()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("SECURE");
+ c->DelSubcommand(&commandcssetsecure);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("SECURE");
+ c->DelSubcommand(&commandcssasetsecure);
}
};
diff --git a/modules/core/cs_set_securefounder.cpp b/modules/core/cs_set_securefounder.cpp
index d6ef6aef8..bf2db2048 100644
--- a/modules/core/cs_set_securefounder.cpp
+++ b/modules/core/cs_set_securefounder.cpp
@@ -16,7 +16,7 @@
class CommandCSSetSecureFounder : public Command
{
public:
- CommandCSSetSecureFounder(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetSecureFounder(const Anope::string &cpermission = "") : Command("SECUREFOUNDER", 2, 2, cpermission)
{
}
@@ -68,7 +68,7 @@ class CommandCSSetSecureFounder : public Command
class CommandCSSASetSecureFounder : public CommandCSSetSecureFounder
{
public:
- CommandCSSASetSecureFounder(const Anope::string &cname) : CommandCSSetSecureFounder(cname, "chanserv/saset/securefounder")
+ CommandCSSASetSecureFounder() : CommandCSSetSecureFounder("chanserv/saset/securefounder")
{
}
@@ -86,6 +86,9 @@ class CommandCSSASetSecureFounder : public CommandCSSetSecureFounder
class CSSetSecureFounder : public Module
{
+ CommandCSSetSecureFounder commandcssetsecurefounder;
+ CommandCSSASetSecureFounder commandcssasetsecurefounder;
+
public:
CSSetSecureFounder(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -94,22 +97,22 @@ class CSSetSecureFounder : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetSecureFounder("SECUREFOUNDER"));
+ c->AddSubcommand(&commandcssetsecurefounder);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetSecureFounder("SECUREFOUNDER"));
+ c->AddSubcommand(&commandcssasetsecurefounder);
}
~CSSetSecureFounder()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("SECUREFOUNDER");
+ c->DelSubcommand(&commandcssetsecurefounder);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("SECUREFOUNDER");
+ c->DelSubcommand(&commandcssasetsecurefounder);
}
};
diff --git a/modules/core/cs_set_secureops.cpp b/modules/core/cs_set_secureops.cpp
index c9367dae7..d0c4554f6 100644
--- a/modules/core/cs_set_secureops.cpp
+++ b/modules/core/cs_set_secureops.cpp
@@ -16,7 +16,7 @@
class CommandCSSetSecureOps : public Command
{
public:
- CommandCSSetSecureOps(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetSecureOps(const Anope::string &cpermission = "") : Command("SECUREOPS", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetSecureOps : public Command
class CommandCSSASetSecureOps : public CommandCSSetSecureOps
{
public:
- CommandCSSASetSecureOps(const Anope::string &cname) : CommandCSSetSecureOps(cname, "chanserv/saset/secureops")
+ CommandCSSASetSecureOps() : CommandCSSetSecureOps("chanserv/saset/secureops")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetSecureOps : public CommandCSSetSecureOps
class CSSetSecureOps : public Module
{
+ CommandCSSetSecureOps commandcssetsecureops;
+ CommandCSSASetSecureOps commandcssasetsecureops;
+
public:
CSSetSecureOps(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetSecureOps : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetSecureOps("SECUREOPS"));
+ c->AddSubcommand(&commandcssetsecureops);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetSecureOps("SECUREOPS"));
+ c->AddSubcommand(&commandcssasetsecureops);
}
~CSSetSecureOps()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("SECUREOPS");
+ c->DelSubcommand(&commandcssetsecureops);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("SECUREOPS");
+ c->DelSubcommand(&commandcssasetsecureops);
}
};
diff --git a/modules/core/cs_set_signkick.cpp b/modules/core/cs_set_signkick.cpp
index d62a5eec4..c0d39d7cf 100644
--- a/modules/core/cs_set_signkick.cpp
+++ b/modules/core/cs_set_signkick.cpp
@@ -16,7 +16,7 @@
class CommandCSSetSignKick : public Command
{
public:
- CommandCSSetSignKick(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetSignKick(const Anope::string &cpermission = "") : Command("SIGNKICK", 2, 2, cpermission)
{
}
@@ -70,7 +70,7 @@ class CommandCSSetSignKick : public Command
class CommandCSSASetSignKick : public CommandCSSetSignKick
{
public:
- CommandCSSASetSignKick(const Anope::string &cname) : CommandCSSetSignKick(cname, "chanserv/saset/signkick")
+ CommandCSSASetSignKick() : CommandCSSetSignKick("chanserv/saset/signkick")
{
}
@@ -88,6 +88,9 @@ class CommandCSSASetSignKick : public CommandCSSetSignKick
class CSSetSignKick : public Module
{
+ CommandCSSetSignKick commandcssetsignkick;
+ CommandCSSASetSignKick commandcssasetsignkick;
+
public:
CSSetSignKick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -96,22 +99,22 @@ class CSSetSignKick : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetSignKick("SIGNKICK"));
+ c->AddSubcommand(&commandcssetsignkick);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetSignKick("SIGNKICK"));
+ c->AddSubcommand(&commandcssasetsignkick);
}
~CSSetSignKick()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("SIGNKICK");
+ c->DelSubcommand(&commandcssetsignkick);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("SIGNKICK");
+ c->DelSubcommand(&commandcssasetsignkick);
}
};
diff --git a/modules/core/cs_set_successor.cpp b/modules/core/cs_set_successor.cpp
index c0c913487..10ae237a7 100644
--- a/modules/core/cs_set_successor.cpp
+++ b/modules/core/cs_set_successor.cpp
@@ -16,7 +16,7 @@
class CommandCSSetSuccessor : public Command
{
public:
- CommandCSSetSuccessor(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 1, 2, cpermission)
+ CommandCSSetSuccessor(const Anope::string &cpermission = "") : Command("SUCCESSOR", 1, 2, cpermission)
{
}
@@ -91,7 +91,7 @@ class CommandCSSetSuccessor : public Command
class CommandCSSASetSuccessor : public CommandCSSetSuccessor
{
public:
- CommandCSSASetSuccessor(const Anope::string &cname) : CommandCSSetSuccessor(cname, "chanserv/saset/successor")
+ CommandCSSASetSuccessor() : CommandCSSetSuccessor("chanserv/saset/successor")
{
}
@@ -110,6 +110,9 @@ class CommandCSSASetSuccessor : public CommandCSSetSuccessor
class CSSetSuccessor : public Module
{
+ CommandCSSetSuccessor commandcssetsuccessor;
+ CommandCSSASetSuccessor commandcssasetsuccessor;
+
public:
CSSetSuccessor(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -118,22 +121,22 @@ class CSSetSuccessor : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetSuccessor("SUCCESSOR"));
+ c->AddSubcommand(&commandcssetsuccessor);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSetSuccessor("SUCCESSOR"));
+ c->AddSubcommand(&commandcssasetsuccessor);
}
~CSSetSuccessor()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("SUCCESSOR");
+ c->DelSubcommand(&commandcssetsuccessor);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("SUCCESSOR");
+ c->DelSubcommand(&commandcssasetsuccessor);
}
};
diff --git a/modules/core/cs_set_topiclock.cpp b/modules/core/cs_set_topiclock.cpp
index b60a687b4..44ae5390c 100644
--- a/modules/core/cs_set_topiclock.cpp
+++ b/modules/core/cs_set_topiclock.cpp
@@ -16,7 +16,7 @@
class CommandCSSetTopicLock : public Command
{
public:
- CommandCSSetTopicLock(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetTopicLock(const Anope::string &cpermission = "") : Command("TOPICLOCK", 2, 2, cpermission)
{
}
@@ -62,7 +62,7 @@ class CommandCSSetTopicLock : public Command
class CommandCSSASetTopicLock : public CommandCSSetTopicLock
{
public:
- CommandCSSASetTopicLock(const Anope::string &cname) : CommandCSSetTopicLock(cname, "chanserv/saset/topiclock")
+ CommandCSSASetTopicLock() : CommandCSSetTopicLock("chanserv/saset/topiclock")
{
}
@@ -80,6 +80,9 @@ class CommandCSSASetTopicLock : public CommandCSSetTopicLock
class CSSetTopicLock : public Module
{
+ CommandCSSetTopicLock commandcssettopiclock;
+ CommandCSSASetTopicLock commandcssasettopiclock;
+
public:
CSSetTopicLock(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -88,22 +91,22 @@ class CSSetTopicLock : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetTopicLock("TOPICLOCK"));
+ c->AddSubcommand(&commandcssettopiclock);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetTopicLock("TOPICLOCK"));
+ c->AddSubcommand(&commandcssasettopiclock);
}
~CSSetTopicLock()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("TOPICLOCK");
+ c->DelSubcommand(&commandcssettopiclock);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("TOPICLOCK");
+ c->DelSubcommand(&commandcssasettopiclock);
}
};
diff --git a/modules/core/cs_set_xop.cpp b/modules/core/cs_set_xop.cpp
index c7d4017b0..1c4c2f431 100644
--- a/modules/core/cs_set_xop.cpp
+++ b/modules/core/cs_set_xop.cpp
@@ -17,7 +17,7 @@
class CommandCSSetXOP : public Command
{
public:
- CommandCSSetXOP(const Anope::string &cname, const Anope::string &cpermission = "") : Command(cname, 2, 2, cpermission)
+ CommandCSSetXOP(const Anope::string &cpermission = "") : Command("XOP", 2, 2, cpermission)
{
}
@@ -100,7 +100,7 @@ class CommandCSSetXOP : public Command
class CommandCSSASetXOP : public CommandCSSetXOP
{
public:
- CommandCSSASetXOP(const Anope::string &cname) : CommandCSSetXOP(cname, "chanserv/saset/xop")
+ CommandCSSASetXOP() : CommandCSSetXOP("chanserv/saset/xop")
{
}
@@ -118,6 +118,9 @@ class CommandCSSASetXOP : public CommandCSSetXOP
class CSSetXOP : public Module
{
+ CommandCSSetXOP commandcssetxop;
+ CommandCSSASetXOP commandcssasetxop;
+
public:
CSSetXOP(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -126,22 +129,22 @@ class CSSetXOP : public Module
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->AddSubcommand(new CommandCSSetXOP("XOP"));
+ c->AddSubcommand(&commandcssetxop);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->AddSubcommand(new CommandCSSASetXOP("XOP"));
+ c->AddSubcommand(&commandcssasetxop);
}
~CSSetXOP()
{
Command *c = FindCommand(ChanServ, "SET");
if (c)
- c->DelSubcommand("XOP");
+ c->DelSubcommand(&commandcssetxop);
c = FindCommand(ChanServ, "SASET");
if (c)
- c->DelSubcommand("XOP");
+ c->DelSubcommand(&commandcssasetxop);
}
};
diff --git a/modules/core/cs_status.cpp b/modules/core/cs_status.cpp
index 01c95796d..0d41a5481 100644
--- a/modules/core/cs_status.cpp
+++ b/modules/core/cs_status.cpp
@@ -63,13 +63,15 @@ class CommandCSStatus : public Command
class CSStatus : public Module
{
+ CommandCSStatus commandcsstatus;
+
public:
CSStatus(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSStatus());
+ this->AddCommand(ChanServ, &commandcsstatus);
}
};
diff --git a/modules/core/cs_suspend.cpp b/modules/core/cs_suspend.cpp
index 53bbaec92..24a7019f4 100644
--- a/modules/core/cs_suspend.cpp
+++ b/modules/core/cs_suspend.cpp
@@ -173,14 +173,17 @@ class CommandCSUnSuspend : public Command
class CSSuspend : public Module
{
+ CommandCSSuspend commandcssuspend;
+ CommandCSUnSuspend commandcsunsuspend;
+
public:
CSSuspend(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSSuspend());
- this->AddCommand(ChanServ, new CommandCSUnSuspend());
+ this->AddCommand(ChanServ, &commandcssuspend);
+ this->AddCommand(ChanServ, &commandcsunsuspend);
}
};
diff --git a/modules/core/cs_topic.cpp b/modules/core/cs_topic.cpp
index d0a6843b5..913ceb239 100644
--- a/modules/core/cs_topic.cpp
+++ b/modules/core/cs_topic.cpp
@@ -81,13 +81,15 @@ class CommandCSTopic : public Command
class CSTopic : public Module
{
+ CommandCSTopic commandcstopic;
+
public:
CSTopic(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSTopic());
+ this->AddCommand(ChanServ, &commandcstopic);
}
};
diff --git a/modules/core/cs_unban.cpp b/modules/core/cs_unban.cpp
index 0d248b8eb..9b9360f23 100644
--- a/modules/core/cs_unban.cpp
+++ b/modules/core/cs_unban.cpp
@@ -75,13 +75,15 @@ class CommandCSUnban : public Command
class CSUnban : public Module
{
+ CommandCSUnban commandcsunban;
+
public:
CSUnban(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSUnban());
+ this->AddCommand(ChanServ, &commandcsunban);
}
};
diff --git a/modules/core/cs_xop.cpp b/modules/core/cs_xop.cpp
index ca11c74fe..b9b271ea3 100644
--- a/modules/core/cs_xop.cpp
+++ b/modules/core/cs_xop.cpp
@@ -626,15 +626,21 @@ class CommandCSVOP : public XOPBase
class CSXOP : public Module
{
+ CommandCSQOP commandcsqop;
+ CommandCSSOP commandcssop;
+ CommandCSAOP commandcsaop;
+ CommandCSHOP commandcshop;
+ CommandCSVOP commandcsvop;
+
public:
CSXOP(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(ChanServ, new CommandCSSOP());
- this->AddCommand(ChanServ, new CommandCSAOP());
- this->AddCommand(ChanServ, new CommandCSVOP());
+ this->AddCommand(ChanServ, &commandcssop);
+ this->AddCommand(ChanServ, &commandcsaop);
+ this->AddCommand(ChanServ, &commandcsvop);
if (Me && Me->IsSynced())
OnUplinkSync(NULL);
@@ -646,15 +652,15 @@ class CSXOP : public Module
void OnUplinkSync(Server *)
{
if (ModeManager::FindChannelModeByName(CMODE_OWNER))
- this->AddCommand(ChanServ, new CommandCSQOP());
+ this->AddCommand(ChanServ, &commandcsqop);
if (ModeManager::FindChannelModeByName(CMODE_HALFOP))
- this->AddCommand(ChanServ, new CommandCSHOP());
+ this->AddCommand(ChanServ, &commandcshop);
}
void OnServerDisconnect()
{
- this->DelCommand(ChanServ, FindCommand(ChanServ, "QOP"));
- this->DelCommand(ChanServ, FindCommand(ChanServ, "HOP"));
+ this->DelCommand(ChanServ, &commandcsqop);
+ this->DelCommand(ChanServ, &commandcshop);
}
};
diff --git a/modules/core/hs_del.cpp b/modules/core/hs_del.cpp
index a35b349a6..3030a7a27 100644
--- a/modules/core/hs_del.cpp
+++ b/modules/core/hs_del.cpp
@@ -60,13 +60,15 @@ class CommandHSDel : public Command
class HSDel : public Module
{
+ CommandHSDel commandhsdel;
+
public:
HSDel(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSDel());
+ this->AddCommand(HostServ, &commandhsdel);
}
};
diff --git a/modules/core/hs_delall.cpp b/modules/core/hs_delall.cpp
index b91ac1a4f..328b77854 100644
--- a/modules/core/hs_delall.cpp
+++ b/modules/core/hs_delall.cpp
@@ -65,13 +65,15 @@ class CommandHSDelAll : public Command
class HSDelAll : public Module
{
+ CommandHSDelAll commandhsdelall;
+
public:
HSDelAll(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSDelAll());
+ this->AddCommand(HostServ, &commandhsdelall);
}
};
diff --git a/modules/core/hs_group.cpp b/modules/core/hs_group.cpp
index 3aa0fc3c4..00a30cb54 100644
--- a/modules/core/hs_group.cpp
+++ b/modules/core/hs_group.cpp
@@ -51,13 +51,15 @@ class CommandHSGroup : public Command
class HSGroup : public Module
{
+ CommandHSGroup commandhsgroup;
+
public:
HSGroup(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSGroup());
+ this->AddCommand(HostServ, &commandhsgroup);
}
};
diff --git a/modules/core/hs_help.cpp b/modules/core/hs_help.cpp
index 4645590f5..78480651a 100644
--- a/modules/core/hs_help.cpp
+++ b/modules/core/hs_help.cpp
@@ -38,13 +38,15 @@ class CommandHSHelp : public Command
class HSHelp : public Module
{
+ CommandHSHelp commandhshelp;
+
public:
HSHelp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSHelp());
+ this->AddCommand(HostServ, &commandhshelp);
}
};
diff --git a/modules/core/hs_list.cpp b/modules/core/hs_list.cpp
index 9bb01e3c7..d85ace345 100644
--- a/modules/core/hs_list.cpp
+++ b/modules/core/hs_list.cpp
@@ -119,13 +119,15 @@ class CommandHSList : public Command
class HSList : public Module
{
+ CommandHSList commandhslist;
+
public:
HSList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSList());
+ this->AddCommand(HostServ, &commandhslist);
}
};
diff --git a/modules/core/hs_off.cpp b/modules/core/hs_off.cpp
index 187854188..ed64e2368 100644
--- a/modules/core/hs_off.cpp
+++ b/modules/core/hs_off.cpp
@@ -49,13 +49,15 @@ class CommandHSOff : public Command
class HSOff : public Module
{
+ CommandHSOff commandhsoff;
+
public:
HSOff(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSOff());
+ this->AddCommand(HostServ, &commandhsoff);
}
};
diff --git a/modules/core/hs_on.cpp b/modules/core/hs_on.cpp
index 25c21f8ec..1cc38e3f8 100644
--- a/modules/core/hs_on.cpp
+++ b/modules/core/hs_on.cpp
@@ -59,13 +59,15 @@ class CommandHSOn : public Command
class HSOn : public Module
{
+ CommandHSOn commandhson;
+
public:
HSOn(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSOn());
+ this->AddCommand(HostServ, &commandhson);
}
};
diff --git a/modules/core/hs_set.cpp b/modules/core/hs_set.cpp
index e492e9ff5..604593e34 100644
--- a/modules/core/hs_set.cpp
+++ b/modules/core/hs_set.cpp
@@ -114,13 +114,15 @@ class CommandHSSet : public Command
class HSSet : public Module
{
+ CommandHSSet commandhsset;
+
public:
HSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSSet());
+ this->AddCommand(HostServ, &commandhsset);
}
};
diff --git a/modules/core/hs_setall.cpp b/modules/core/hs_setall.cpp
index adf2f9610..9bf6369fe 100644
--- a/modules/core/hs_setall.cpp
+++ b/modules/core/hs_setall.cpp
@@ -117,13 +117,15 @@ class CommandHSSetAll : public Command
class HSSetAll : public Module
{
+ CommandHSSetAll commandhssetall;
+
public:
HSSetAll(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(HostServ, new CommandHSSetAll());
+ this->AddCommand(HostServ, &commandhssetall);
}
};
diff --git a/modules/core/ms_cancel.cpp b/modules/core/ms_cancel.cpp
index 9e3c52417..3a170d812 100644
--- a/modules/core/ms_cancel.cpp
+++ b/modules/core/ms_cancel.cpp
@@ -75,13 +75,15 @@ class CommandMSCancel : public Command
class MSCancel : public Module
{
+ CommandMSCancel commandmscancel;
+
public:
MSCancel(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSCancel());
+ this->AddCommand(MemoServ, &commandmscancel);
}
};
diff --git a/modules/core/ms_check.cpp b/modules/core/ms_check.cpp
index 9f237fa15..299be5302 100644
--- a/modules/core/ms_check.cpp
+++ b/modules/core/ms_check.cpp
@@ -93,13 +93,15 @@ class CommandMSCheck : public Command
class MSCheck : public Module
{
+ CommandMSCheck commandmscheck;
+
public:
MSCheck(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSCheck());
+ this->AddCommand(MemoServ, &commandmscheck);
}
};
diff --git a/modules/core/ms_del.cpp b/modules/core/ms_del.cpp
index f6e21269e..8d5b45c04 100644
--- a/modules/core/ms_del.cpp
+++ b/modules/core/ms_del.cpp
@@ -146,13 +146,15 @@ class CommandMSDel : public Command
class MSDel : public Module
{
+ CommandMSDel commandmsdel;
+
public:
MSDel(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSDel());
+ this->AddCommand(MemoServ, &commandmsdel);
}
};
diff --git a/modules/core/ms_help.cpp b/modules/core/ms_help.cpp
index 793006a60..535b051f0 100644
--- a/modules/core/ms_help.cpp
+++ b/modules/core/ms_help.cpp
@@ -39,13 +39,15 @@ class CommandMSHelp : public Command
class MSHelp : public Module
{
+ CommandMSHelp commandmshelp;
+
public:
MSHelp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSHelp());
+ this->AddCommand(MemoServ, &commandmshelp);
}
};
diff --git a/modules/core/ms_info.cpp b/modules/core/ms_info.cpp
index f5a3f8c4c..89b816a60 100644
--- a/modules/core/ms_info.cpp
+++ b/modules/core/ms_info.cpp
@@ -202,13 +202,15 @@ class CommandMSInfo : public Command
class MSInfo : public Module
{
+ CommandMSInfo commandmsinfo;
+
public:
MSInfo(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSInfo());
+ this->AddCommand(MemoServ, &commandmsinfo);
}
};
diff --git a/modules/core/ms_list.cpp b/modules/core/ms_list.cpp
index bf6eda5f9..d3dcde4f6 100644
--- a/modules/core/ms_list.cpp
+++ b/modules/core/ms_list.cpp
@@ -163,13 +163,15 @@ class CommandMSList : public Command
class MSList : public Module
{
+ CommandMSList commandmslist;
+
public:
MSList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSList());
+ this->AddCommand(MemoServ, &commandmslist);
}
};
diff --git a/modules/core/ms_read.cpp b/modules/core/ms_read.cpp
index d2593daf1..5f25230e3 100644
--- a/modules/core/ms_read.cpp
+++ b/modules/core/ms_read.cpp
@@ -146,13 +146,15 @@ class CommandMSRead : public Command
class MSRead : public Module
{
+ CommandMSRead commandmsread;
+
public:
MSRead(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSRead());
+ this->AddCommand(MemoServ, &commandmsread);
}
};
diff --git a/modules/core/ms_rsend.cpp b/modules/core/ms_rsend.cpp
index 1caa9fe74..ed0c51998 100644
--- a/modules/core/ms_rsend.cpp
+++ b/modules/core/ms_rsend.cpp
@@ -73,6 +73,8 @@ class CommandMSRSend : public Command
class MSRSend : public Module
{
+ CommandMSRSend commandmsrsend;
+
public:
MSRSend(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -82,7 +84,7 @@ class MSRSend : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSRSend());
+ this->AddCommand(MemoServ, &commandmsrsend);
}
};
diff --git a/modules/core/ms_send.cpp b/modules/core/ms_send.cpp
index fd2f3636c..67fe265d1 100644
--- a/modules/core/ms_send.cpp
+++ b/modules/core/ms_send.cpp
@@ -47,13 +47,15 @@ class CommandMSSend : public Command
class MSSend : public Module
{
+ CommandMSSend commandmssend;
+
public:
MSSend(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSSend());
+ this->AddCommand(MemoServ, &commandmssend);
}
};
diff --git a/modules/core/ms_sendall.cpp b/modules/core/ms_sendall.cpp
index 35efd2f1e..aa19cfb6c 100644
--- a/modules/core/ms_sendall.cpp
+++ b/modules/core/ms_sendall.cpp
@@ -63,13 +63,15 @@ class CommandMSSendAll : public Command
class MSSendAll : public Module
{
+ CommandMSSendAll commandmssendall;
+
public:
MSSendAll(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSSendAll());
+ this->AddCommand(MemoServ, &commandmssendall);
}
};
diff --git a/modules/core/ms_set.cpp b/modules/core/ms_set.cpp
index 58f33b1ee..f0abdc5de 100644
--- a/modules/core/ms_set.cpp
+++ b/modules/core/ms_set.cpp
@@ -260,13 +260,15 @@ class CommandMSSet : public Command
class MSSet : public Module
{
+ CommandMSSet commandmsset;
+
public:
MSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSSet());
+ this->AddCommand(MemoServ, &commandmsset);
}
};
diff --git a/modules/core/ms_staff.cpp b/modules/core/ms_staff.cpp
index 7f81aafe2..a53289610 100644
--- a/modules/core/ms_staff.cpp
+++ b/modules/core/ms_staff.cpp
@@ -60,13 +60,15 @@ class CommandMSStaff : public Command
class MSStaff : public Module
{
+ CommandMSStaff commandmsstaff;
+
public:
MSStaff(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(MemoServ, new CommandMSStaff());
+ this->AddCommand(MemoServ, &commandmsstaff);
}
};
diff --git a/modules/core/ns_access.cpp b/modules/core/ns_access.cpp
index 4f74d182d..3e097427d 100644
--- a/modules/core/ns_access.cpp
+++ b/modules/core/ns_access.cpp
@@ -167,13 +167,15 @@ class CommandNSAccess : public Command
class NSAccess : public Module
{
+ CommandNSAccess commandnsaccess;
+
public:
NSAccess(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSAccess());
+ this->AddCommand(NickServ, &commandnsaccess);
}
};
diff --git a/modules/core/ns_alist.cpp b/modules/core/ns_alist.cpp
index a7d4d7e4a..174b6fc80 100644
--- a/modules/core/ns_alist.cpp
+++ b/modules/core/ns_alist.cpp
@@ -137,13 +137,15 @@ class CommandNSAList : public Command
class NSAList : public Module
{
+ CommandNSAList commandnsalist;
+
public:
NSAList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSAList());
+ this->AddCommand(NickServ, &commandnsalist);
}
};
diff --git a/modules/core/ns_drop.cpp b/modules/core/ns_drop.cpp
index e85b2cebb..d5758197a 100644
--- a/modules/core/ns_drop.cpp
+++ b/modules/core/ns_drop.cpp
@@ -114,13 +114,15 @@ class CommandNSDrop : public Command
class NSDrop : public Module
{
+ CommandNSDrop commandnsdrop;
+
public:
NSDrop(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSDrop());
+ this->AddCommand(NickServ, &commandnsdrop);
}
};
diff --git a/modules/core/ns_forbid.cpp b/modules/core/ns_forbid.cpp
index ad313d62b..511ef3a2f 100644
--- a/modules/core/ns_forbid.cpp
+++ b/modules/core/ns_forbid.cpp
@@ -108,13 +108,15 @@ class CommandNSForbid : public Command
class NSForbid : public Module
{
+ CommandNSForbid commandnsforbid;
+
public:
NSForbid(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSForbid());
+ this->AddCommand(NickServ, &commandnsforbid);
}
};
diff --git a/modules/core/ns_getemail.cpp b/modules/core/ns_getemail.cpp
index eeb3c705d..3cf795772 100644
--- a/modules/core/ns_getemail.cpp
+++ b/modules/core/ns_getemail.cpp
@@ -70,13 +70,14 @@ class CommandNSGetEMail : public Command
class NSGetEMail : public Module
{
+ CommandNSGetEMail commandnsgetemail;
public:
NSGetEMail(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSGetEMail());
+ this->AddCommand(NickServ, &commandnsgetemail);
}
};
diff --git a/modules/core/ns_getpass.cpp b/modules/core/ns_getpass.cpp
index 97654d2d5..e1e16d96b 100644
--- a/modules/core/ns_getpass.cpp
+++ b/modules/core/ns_getpass.cpp
@@ -77,6 +77,8 @@ class CommandNSGetPass : public Command
class NSGetPass : public Module
{
+ CommandNSGetPass commandnsgetpass;
+
public:
NSGetPass(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -87,7 +89,7 @@ class NSGetPass : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSGetPass());
+ this->AddCommand(NickServ, &commandnsgetpass);
}
};
diff --git a/modules/core/ns_ghost.cpp b/modules/core/ns_ghost.cpp
index ac1e0787f..9fb82a9d4 100644
--- a/modules/core/ns_ghost.cpp
+++ b/modules/core/ns_ghost.cpp
@@ -90,13 +90,15 @@ class CommandNSGhost : public Command
class NSGhost : public Module
{
+ CommandNSGhost commandnsghost;
+
public:
NSGhost(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSGhost());
+ this->AddCommand(NickServ, &commandnsghost);
}
};
diff --git a/modules/core/ns_group.cpp b/modules/core/ns_group.cpp
index 7cdac0a4f..574b5ae39 100644
--- a/modules/core/ns_group.cpp
+++ b/modules/core/ns_group.cpp
@@ -276,15 +276,19 @@ class CommandNSGList : public Command
class NSGroup : public Module
{
+ CommandNSGroup commandnsgroup;
+ CommandNSUngroup commandnsungroup;
+ CommandNSGList commandnsglist;
+
public:
NSGroup(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSGroup());
- this->AddCommand(NickServ, new CommandNSUngroup());
- this->AddCommand(NickServ, new CommandNSGList());
+ this->AddCommand(NickServ, &commandnsgroup);
+ this->AddCommand(NickServ, &commandnsungroup);
+ this->AddCommand(NickServ, &commandnsglist);
}
};
diff --git a/modules/core/ns_help.cpp b/modules/core/ns_help.cpp
index ba4ad8a4c..1ece4bc00 100644
--- a/modules/core/ns_help.cpp
+++ b/modules/core/ns_help.cpp
@@ -54,13 +54,15 @@ class CommandNSHelp : public Command
class NSHelp : public Module
{
+ CommandNSHelp commandnshelp;
+
public:
NSHelp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSHelp());
+ this->AddCommand(NickServ, &commandnshelp);
}
};
diff --git a/modules/core/ns_identify.cpp b/modules/core/ns_identify.cpp
index bdf6beffa..db9a70a55 100644
--- a/modules/core/ns_identify.cpp
+++ b/modules/core/ns_identify.cpp
@@ -113,14 +113,16 @@ class CommandNSIdentify : public Command
class NSIdentify : public Module
{
+ CommandNSIdentify commandnsidentify, commandnsid;
+
public:
- NSIdentify(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
+ NSIdentify(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator), commandnsidentify("IDENTIFY"), commandnsid("ID")
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSIdentify("IDENTIFY"));
- this->AddCommand(NickServ, new CommandNSIdentify("ID"));
+ this->AddCommand(NickServ, &commandnsidentify);
+ this->AddCommand(NickServ, &commandnsid);
}
};
diff --git a/modules/core/ns_info.cpp b/modules/core/ns_info.cpp
index 60af29baa..153faa623 100644
--- a/modules/core/ns_info.cpp
+++ b/modules/core/ns_info.cpp
@@ -178,13 +178,15 @@ class CommandNSInfo : public Command
class NSInfo : public Module
{
+ CommandNSInfo commandnsinfo;
+
public:
NSInfo(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSInfo());
+ this->AddCommand(NickServ, &commandnsinfo);
}
};
diff --git a/modules/core/ns_list.cpp b/modules/core/ns_list.cpp
index 324a3bceb..680d332e0 100644
--- a/modules/core/ns_list.cpp
+++ b/modules/core/ns_list.cpp
@@ -195,13 +195,15 @@ class CommandNSList : public Command
class NSList : public Module
{
+ CommandNSList commandnslist;
+
public:
NSList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSList());
+ this->AddCommand(NickServ, &commandnslist);
}
};
diff --git a/modules/core/ns_logout.cpp b/modules/core/ns_logout.cpp
index e0e8f0c7b..e2504b978 100644
--- a/modules/core/ns_logout.cpp
+++ b/modules/core/ns_logout.cpp
@@ -81,13 +81,15 @@ class CommandNSLogout : public Command
class NSLogout : public Module
{
+ CommandNSLogout commandnslogout;
+
public:
NSLogout(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSLogout());
+ this->AddCommand(NickServ, &commandnslogout);
}
};
diff --git a/modules/core/ns_recover.cpp b/modules/core/ns_recover.cpp
index e3280c90d..b8107e08a 100644
--- a/modules/core/ns_recover.cpp
+++ b/modules/core/ns_recover.cpp
@@ -87,7 +87,6 @@ class CommandNSRecover : public Command
Anope::string relstr = duration(u->Account(), Config.NSReleaseTimeout);
notice_help(Config.s_NickServ, u, NICK_HELP_RECOVER, relstr.c_str());
- //do_help_limited(Config.s_NickServ, u, this);
return true;
}
@@ -105,13 +104,15 @@ class CommandNSRecover : public Command
class NSRecover : public Module
{
+ CommandNSRecover commandnsrecover;
+
public:
NSRecover(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSRecover());
+ this->AddCommand(NickServ, &commandnsrecover);
}
};
diff --git a/modules/core/ns_register.cpp b/modules/core/ns_register.cpp
index 46764cd9e..51afc6e3e 100644
--- a/modules/core/ns_register.cpp
+++ b/modules/core/ns_register.cpp
@@ -368,15 +368,19 @@ class CommandNSResend : public Command
class NSRegister : public Module
{
+ CommandNSRegister commandnsregister;
+ CommandNSConfirm commandnsconfirm;
+ CommandNSResend commandnsrsend;
+
public:
- NSRegister(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
+ NSRegister(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator), commandnsconfirm("CONFIRM", 1, 1)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSRegister());
- this->AddCommand(NickServ, new CommandNSConfirm("CONFIRM", 1, 1));
- this->AddCommand(NickServ, new CommandNSResend());
+ this->AddCommand(NickServ, &commandnsregister);
+ this->AddCommand(NickServ, &commandnsconfirm);
+ this->AddCommand(NickServ, &commandnsrsend);
}
};
diff --git a/modules/core/ns_release.cpp b/modules/core/ns_release.cpp
index cb59ac6a1..bbf5401ca 100644
--- a/modules/core/ns_release.cpp
+++ b/modules/core/ns_release.cpp
@@ -91,13 +91,15 @@ class CommandNSRelease : public Command
class NSRelease : public Module
{
+ CommandNSRelease commandnsrelease;
+
public:
NSRelease(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSRelease());
+ this->AddCommand(NickServ, &commandnsrelease);
}
};
diff --git a/modules/core/ns_resetpass.cpp b/modules/core/ns_resetpass.cpp
index 23bb8095e..b0f95d8ef 100644
--- a/modules/core/ns_resetpass.cpp
+++ b/modules/core/ns_resetpass.cpp
@@ -63,6 +63,8 @@ class CommandNSResetPass : public Command
class NSResetPass : public Module
{
+ CommandNSResetPass commandnsresetpass;
+
public:
NSResetPass(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -72,7 +74,7 @@ class NSResetPass : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSResetPass());
+ this->AddCommand(NickServ, &commandnsresetpass);
ModuleManager::Attach(I_OnPreCommand, this);
}
diff --git a/modules/core/ns_saset.cpp b/modules/core/ns_saset.cpp
index 624f25b7b..c42a1939f 100644
--- a/modules/core/ns_saset.cpp
+++ b/modules/core/ns_saset.cpp
@@ -19,14 +19,12 @@ class CommandNSSASet : public Command
subcommand_map subcommands;
public:
- CommandNSSASet(const Anope::string &cname) : Command(cname, 2, 4)
+ CommandNSSASet() : Command("SASET", 2, 4)
{
}
~CommandNSSASet()
{
- for (subcommand_map::const_iterator it = this->subcommands.begin(), it_end = this->subcommands.end(); it != it_end; ++it)
- delete it->second;
this->subcommands.clear();
}
@@ -102,9 +100,9 @@ class CommandNSSASet : public Command
return this->subcommands.insert(std::make_pair(c->name, c)).second;
}
- bool DelSubcommand(const Anope::string &command)
+ bool DelSubcommand(Command *c)
{
- return this->subcommands.erase(command);
+ return this->subcommands.erase(c->name);
}
Command *FindCommand(const Anope::string &subcommand)
@@ -121,7 +119,7 @@ class CommandNSSASet : public Command
class CommandNSSASetDisplay : public Command
{
public:
- CommandNSSASetDisplay(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/display")
+ CommandNSSASetDisplay() : Command("DISPLAY", 2, 2, "nickserv/saset/display")
{
}
@@ -164,7 +162,7 @@ class CommandNSSASetDisplay : public Command
class CommandNSSASetPassword : public Command
{
public:
- CommandNSSASetPassword(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/password")
+ CommandNSSASetPassword() : Command("PASSWORD", 2, 2, "nickserv/saset/password")
{
}
@@ -232,16 +230,20 @@ class CommandNSSASetPassword : public Command
class NSSASet : public Module
{
-public:
+ CommandNSSASet commandnssaset;
+ CommandNSSASetDisplay commandnssasetdisplay;
+ CommandNSSASetPassword commandnssasetpassword;
+
+ public:
NSSASet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- Command *c = new CommandNSSASet("SASET");
- this->AddCommand(NickServ, c);
- c->AddSubcommand(new CommandNSSASetDisplay("DISPLAY"));
- c->AddSubcommand(new CommandNSSASetPassword("PASSWORD"));
+ this->AddCommand(NickServ, &commandnssaset);
+
+ commandnssaset.AddSubcommand(&commandnssasetdisplay);
+ commandnssaset.AddSubcommand(&commandnssasetpassword);
}
};
diff --git a/modules/core/ns_saset_noexpire.cpp b/modules/core/ns_saset_noexpire.cpp
index 62b93d7e9..3404a0db2 100644
--- a/modules/core/ns_saset_noexpire.cpp
+++ b/modules/core/ns_saset_noexpire.cpp
@@ -16,7 +16,7 @@
class CommandNSSASetNoexpire : public Command
{
public:
- CommandNSSASetNoexpire(const Anope::string &cname) : Command(cname, 1, 2, "nickserv/saset/noexpire")
+ CommandNSSASetNoexpire() : Command("NOEXPIRE", 1, 2, "nickserv/saset/noexpire")
{
}
@@ -63,6 +63,8 @@ class CommandNSSASetNoexpire : public Command
class NSSASetNoexpire : public Module
{
+ CommandNSSASetNoexpire commandnssasetnoexpire;
+
public:
NSSASetNoexpire(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -71,14 +73,14 @@ class NSSASetNoexpire : public Module
Command *c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetNoexpire("NOEXPIRE"));
+ c->AddSubcommand(&commandnssasetnoexpire);
}
~NSSASetNoexpire()
{
Command *c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("NOEXPIRE");
+ c->DelSubcommand(&commandnssasetnoexpire);
}
};
diff --git a/modules/core/ns_sendpass.cpp b/modules/core/ns_sendpass.cpp
index 61a61f356..30783a5b6 100644
--- a/modules/core/ns_sendpass.cpp
+++ b/modules/core/ns_sendpass.cpp
@@ -70,6 +70,8 @@ class CommandNSSendPass : public Command
class NSSendPass : public Module
{
+ CommandNSSendPass commandnssendpass;
+
public:
NSSendPass(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -83,7 +85,7 @@ class NSSendPass : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSSendPass());
+ this->AddCommand(NickServ, &commandnssendpass);
}
};
diff --git a/modules/core/ns_set.cpp b/modules/core/ns_set.cpp
index f05e9ccdb..fff85538e 100644
--- a/modules/core/ns_set.cpp
+++ b/modules/core/ns_set.cpp
@@ -19,14 +19,12 @@ class CommandNSSet : public Command
subcommand_map subcommands;
public:
- CommandNSSet(const Anope::string &cname) : Command(cname, 1, 3)
+ CommandNSSet() : Command("SET", 1, 3)
{
}
~CommandNSSet()
{
- for (subcommand_map::const_iterator it = this->subcommands.begin(), it_end = this->subcommands.end(); it != it_end; ++it)
- delete it->second;
this->subcommands.clear();
}
@@ -116,7 +114,7 @@ class CommandNSSet : public Command
class CommandNSSetDisplay : public Command
{
public:
- CommandNSSetDisplay(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetDisplay() : Command("DISPLAY", 1)
{
}
@@ -156,7 +154,7 @@ class CommandNSSetDisplay : public Command
class CommandNSSetPassword : public Command
{
public:
- CommandNSSetPassword(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetPassword() : Command("PASSWORD", 1)
{
}
@@ -214,16 +212,20 @@ class CommandNSSetPassword : public Command
class NSSet : public Module
{
+ CommandNSSet commandnsset;
+ CommandNSSetDisplay commandnssetdisplay;
+ CommandNSSetPassword commandnssetpassword;
+
public:
NSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- Command *set = new CommandNSSet("SET");
- this->AddCommand(NickServ, set);
- set->AddSubcommand(new CommandNSSetDisplay("DISPLAY"));
- set->AddSubcommand(new CommandNSSetPassword("PASSWORD"));
+ this->AddCommand(NickServ, &commandnsset);
+
+ commandnsset.AddSubcommand(&commandnssetdisplay);
+ commandnsset.AddSubcommand(&commandnssetpassword);
}
};
diff --git a/modules/core/ns_set_autoop.cpp b/modules/core/ns_set_autoop.cpp
index da8b8ccb9..408110239 100644
--- a/modules/core/ns_set_autoop.cpp
+++ b/modules/core/ns_set_autoop.cpp
@@ -16,7 +16,7 @@
class CommandNSSetAutoOp : public Command
{
public:
- CommandNSSetAutoOp(const Anope::string &cname) : Command(cname, 2)
+ CommandNSSetAutoOp() : Command("AUTOOP", 2)
{
}
@@ -58,7 +58,7 @@ class CommandNSSetAutoOp : public Command
class CommandNSSASetAutoOp : public Command
{
public:
- CommandNSSASetAutoOp(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/autoop")
+ CommandNSSASetAutoOp() : Command("AUTOOP", 2, 2, "nickserv/saset/autoop")
{
}
@@ -105,6 +105,9 @@ class CommandNSSASetAutoOp : public Command
class NSSetAutoOp : public Module
{
+ CommandNSSetAutoOp commandnssetautoop;
+ CommandNSSASetAutoOp commandnssasetautoop;
+
public:
NSSetAutoOp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -113,22 +116,22 @@ class NSSetAutoOp : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetAutoOp("AUTOOP"));
+ c->AddSubcommand(&commandnssetautoop);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetAutoOp("AUTOOP"));
+ c->AddSubcommand(&commandnssasetautoop);
}
~NSSetAutoOp()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("AUTOOP");
+ c->DelSubcommand(&commandnssetautoop);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("AUTOOP");
+ c->DelSubcommand(&commandnssasetautoop);
}
};
diff --git a/modules/core/ns_set_email.cpp b/modules/core/ns_set_email.cpp
index 070e93026..8b10f01ad 100644
--- a/modules/core/ns_set_email.cpp
+++ b/modules/core/ns_set_email.cpp
@@ -16,7 +16,7 @@
class CommandNSSetEmail : public Command
{
public:
- CommandNSSetEmail(const Anope::string &cname) : Command(cname, 0)
+ CommandNSSetEmail() : Command("EMAIL", 0)
{
}
@@ -64,7 +64,7 @@ class CommandNSSetEmail : public Command
class CommandNSSASetEmail : public Command
{
public:
- CommandNSSASetEmail(const Anope::string &cname) : Command(cname, 1, 2, "nickserv/saset/email")
+ CommandNSSASetEmail() : Command("EMAIL", 1, 2, "nickserv/saset/email")
{
}
@@ -122,6 +122,9 @@ class CommandNSSASetEmail : public Command
class NSSetEmail : public Module
{
+ CommandNSSetEmail commandnssetemail;
+ CommandNSSASetEmail commandnssasetemail;
+
public:
NSSetEmail(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -130,22 +133,22 @@ class NSSetEmail : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetEmail("EMAIL"));
+ c->AddSubcommand(&commandnssetemail);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetEmail("EMAIL"));
+ c->AddSubcommand(&commandnssasetemail);
}
~NSSetEmail()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("EMAIL");
+ c->DelSubcommand(&commandnssetemail);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("EMAIL");
+ c->DelSubcommand(&commandnssasetemail);
}
};
diff --git a/modules/core/ns_set_greet.cpp b/modules/core/ns_set_greet.cpp
index 4704bf1ca..d807f3afc 100644
--- a/modules/core/ns_set_greet.cpp
+++ b/modules/core/ns_set_greet.cpp
@@ -16,7 +16,7 @@
class CommandNSSetGreet : public Command
{
public:
- CommandNSSetGreet(const Anope::string &cname) : Command(cname, 0)
+ CommandNSSetGreet() : Command("GREET", 0)
{
}
@@ -51,7 +51,7 @@ class CommandNSSetGreet : public Command
class CommandNSSASetGreet : public Command
{
public:
- CommandNSSASetGreet(const Anope::string &cname) : Command(cname, 1, 2, "nickserv/saset/greet")
+ CommandNSSASetGreet() : Command("GREET", 1, 2, "nickserv/saset/greet")
{
}
@@ -91,6 +91,9 @@ class CommandNSSASetGreet : public Command
class NSSetGreet : public Module
{
+ CommandNSSetGreet commandnssetgreet;
+ CommandNSSASetGreet commandnssasetgreet;
+
public:
NSSetGreet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -99,22 +102,22 @@ class NSSetGreet : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetGreet("GREET"));
+ c->AddSubcommand(&commandnssetgreet);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetGreet("GREET"));
+ c->AddSubcommand(&commandnssasetgreet);
}
~NSSetGreet()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("GREET");
+ c->DelSubcommand(&commandnssetgreet);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("GREET");
+ c->DelSubcommand(&commandnssasetgreet);
}
};
diff --git a/modules/core/ns_set_hide.cpp b/modules/core/ns_set_hide.cpp
index 8432794ff..7cfef2dc7 100644
--- a/modules/core/ns_set_hide.cpp
+++ b/modules/core/ns_set_hide.cpp
@@ -16,7 +16,7 @@
class CommandNSSetHide : public Command
{
public:
- CommandNSSetHide(const Anope::string &cname) : Command(cname, 2)
+ CommandNSSetHide() : Command("HIDE", 2)
{
}
@@ -91,7 +91,7 @@ class CommandNSSetHide : public Command
class CommandNSSASetHide : public Command
{
public:
- CommandNSSASetHide(const Anope::string &cname) : Command(cname, 3, 3, "nickserv/saset/command")
+ CommandNSSASetHide() : Command("HIDE", 3, 3, "nickserv/saset/command")
{
}
@@ -174,6 +174,9 @@ class CommandNSSASetHide : public Command
class NSSetHide : public Module
{
+ CommandNSSetHide commandnssethide;
+ CommandNSSASetHide commandnssasethide;
+
public:
NSSetHide(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -182,22 +185,22 @@ class NSSetHide : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetHide("HIDE"));
+ c->AddSubcommand(&commandnssethide);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetHide("HIDE"));
+ c->AddSubcommand(&commandnssasethide);
}
~NSSetHide()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("HIDE");
+ c->DelSubcommand(&commandnssethide);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("HIDE");
+ c->DelSubcommand(&commandnssasethide);
}
};
diff --git a/modules/core/ns_set_kill.cpp b/modules/core/ns_set_kill.cpp
index cad473543..5293625cb 100644
--- a/modules/core/ns_set_kill.cpp
+++ b/modules/core/ns_set_kill.cpp
@@ -16,7 +16,7 @@
class CommandNSSetKill : public Command
{
public:
- CommandNSSetKill(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetKill() : Command("KILL", 1)
{
}
@@ -81,7 +81,7 @@ class CommandNSSetKill : public Command
class CommandNSSASetKill : public Command
{
public:
- CommandNSSASetKill(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/kill")
+ CommandNSSASetKill() : Command("KILL", 2, 2, "nickserv/saset/kill")
{
}
@@ -151,6 +151,9 @@ class CommandNSSASetKill : public Command
class NSSetKill : public Module
{
+ CommandNSSetKill commandnssetkill;
+ CommandNSSASetKill commandnssasetkill;
+
public:
NSSetKill(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -159,22 +162,22 @@ class NSSetKill : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetKill("KILL"));
+ c->AddSubcommand(&commandnssetkill);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetKill("KILL"));
+ c->AddSubcommand(&commandnssasetkill);
}
~NSSetKill()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("KILL");
+ c->DelSubcommand(&commandnssetkill);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("KILL");
+ c->DelSubcommand(&commandnssasetkill);
}
};
diff --git a/modules/core/ns_set_language.cpp b/modules/core/ns_set_language.cpp
index c76bf0fef..6535376e5 100644
--- a/modules/core/ns_set_language.cpp
+++ b/modules/core/ns_set_language.cpp
@@ -16,7 +16,7 @@
class CommandNSSetLanguage : public Command
{
public:
- CommandNSSetLanguage(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetLanguage() : Command("LANGUAGE", 1)
{
}
@@ -63,7 +63,7 @@ class CommandNSSetLanguage : public Command
class CommandNSSASetLanguage : public Command
{
public:
- CommandNSSASetLanguage(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/language")
+ CommandNSSASetLanguage() : Command("LANGUAGE", 2, 2, "nickserv/saset/language")
{
}
@@ -111,6 +111,9 @@ class CommandNSSASetLanguage : public Command
class NSSetLanguage : public Module
{
+ CommandNSSetLanguage commandnssetlanguage;
+ CommandNSSASetLanguage commandnssasetlanguage;
+
public:
NSSetLanguage(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -119,22 +122,22 @@ class NSSetLanguage : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetLanguage("LANGUAGE"));
+ c->AddSubcommand(&commandnssetlanguage);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetLanguage("LANGUAGE"));
+ c->AddSubcommand(&commandnssasetlanguage);
}
~NSSetLanguage()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("LANGUAGE");
+ c->DelSubcommand(&commandnssetlanguage);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("LANGUAGE");
+ c->DelSubcommand(&commandnssasetlanguage);
}
};
diff --git a/modules/core/ns_set_message.cpp b/modules/core/ns_set_message.cpp
index f31d4aebe..45b6bbc91 100644
--- a/modules/core/ns_set_message.cpp
+++ b/modules/core/ns_set_message.cpp
@@ -16,7 +16,7 @@
class CommandNSSetMessage : public Command
{
public:
- CommandNSSetMessage(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetMessage() : Command("MESSAGE", 1)
{
}
@@ -64,7 +64,7 @@ class CommandNSSetMessage : public Command
class CommandNSSASetMessage : public Command
{
public:
- CommandNSSASetMessage(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/message")
+ CommandNSSASetMessage() : Command("MESSAGE", 2, 2, "nickserv/saset/message")
{
}
@@ -117,6 +117,9 @@ class CommandNSSASetMessage : public Command
class NSSetMessage : public Module
{
+ CommandNSSetMessage commandnssetmessage;
+ CommandNSSASetMessage commandnssasetmessage;
+
public:
NSSetMessage(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -125,22 +128,22 @@ class NSSetMessage : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetMessage("MSG"));
+ c->AddSubcommand(&commandnssetmessage);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetMessage("MSG"));
+ c->AddSubcommand(&commandnssasetmessage);
}
~NSSetMessage()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("MSG");
+ c->DelSubcommand(&commandnssetmessage);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("MSG");
+ c->DelSubcommand(&commandnssasetmessage);
}
};
diff --git a/modules/core/ns_set_private.cpp b/modules/core/ns_set_private.cpp
index c3ce5c8eb..dabfaa09f 100644
--- a/modules/core/ns_set_private.cpp
+++ b/modules/core/ns_set_private.cpp
@@ -16,7 +16,7 @@
class CommandNSSetPrivate : public Command
{
public:
- CommandNSSetPrivate(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetPrivate() : Command("PRIVATE", 1)
{
}
@@ -58,7 +58,7 @@ class CommandNSSetPrivate : public Command
class CommandNSSASetPrivate : public Command
{
public:
- CommandNSSASetPrivate(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/private")
+ CommandNSSASetPrivate() : Command("PRIVATE", 2, 2, "nickserv/saset/private")
{
}
@@ -105,6 +105,9 @@ class CommandNSSASetPrivate : public Command
class NSSetPrivate : public Module
{
+ CommandNSSetPrivate commandnssetprivate;
+ CommandNSSASetPrivate commandnssasetprivate;
+
public:
NSSetPrivate(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -113,22 +116,22 @@ class NSSetPrivate : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetPrivate("PRIVATE"));
+ c->AddSubcommand(&commandnssetprivate);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetPrivate("PRIVATE"));
+ c->AddSubcommand(&commandnssasetprivate);
}
~NSSetPrivate()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("PRIVATE");
+ c->DelSubcommand(&commandnssetprivate);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("PRIVATE");
+ c->DelSubcommand(&commandnssasetprivate);
}
};
diff --git a/modules/core/ns_set_secure.cpp b/modules/core/ns_set_secure.cpp
index 872829924..bfaddce48 100644
--- a/modules/core/ns_set_secure.cpp
+++ b/modules/core/ns_set_secure.cpp
@@ -16,7 +16,7 @@
class CommandNSSetSecure : public Command
{
public:
- CommandNSSetSecure(const Anope::string &cname) : Command(cname, 1)
+ CommandNSSetSecure() : Command("SECURE", 1)
{
}
@@ -58,7 +58,7 @@ class CommandNSSetSecure : public Command
class CommandNSSASetSecure : public Command
{
public:
- CommandNSSASetSecure(const Anope::string &cname) : Command(cname, 2, 2, "nickserv/saset/secure")
+ CommandNSSASetSecure() : Command("SECURE", 2, 2, "nickserv/saset/secure")
{
}
@@ -105,6 +105,9 @@ class CommandNSSASetSecure : public Command
class NSSetSecure : public Module
{
+ CommandNSSetSecure commandnssetsecure;
+ CommandNSSASetSecure commandnssasetsecure;
+
public:
NSSetSecure(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -113,22 +116,22 @@ class NSSetSecure : public Module
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->AddSubcommand(new CommandNSSetSecure("SECURE"));
+ c->AddSubcommand(&commandnssetsecure);
c = FindCommand(NickServ, "SASET");
if (c)
- c->AddSubcommand(new CommandNSSASetSecure("SECURE"));
+ c->AddSubcommand(&commandnssasetsecure);
}
~NSSetSecure()
{
Command *c = FindCommand(NickServ, "SET");
if (c)
- c->DelSubcommand("SECURE");
+ c->DelSubcommand(&commandnssetsecure);
c = FindCommand(NickServ, "SASET");
if (c)
- c->DelSubcommand("SECURE");
+ c->DelSubcommand(&commandnssasetsecure);
}
};
diff --git a/modules/core/ns_status.cpp b/modules/core/ns_status.cpp
index 074d80c23..7a92fe819 100644
--- a/modules/core/ns_status.cpp
+++ b/modules/core/ns_status.cpp
@@ -62,13 +62,15 @@ class CommandNSStatus : public Command
class NSStatus : public Module
{
+ CommandNSStatus commandnsstatus;
+
public:
NSStatus(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSStatus());
+ this->AddCommand(NickServ, &commandnsstatus);
}
};
diff --git a/modules/core/ns_suspend.cpp b/modules/core/ns_suspend.cpp
index 375349fba..da8ea4e50 100644
--- a/modules/core/ns_suspend.cpp
+++ b/modules/core/ns_suspend.cpp
@@ -169,14 +169,17 @@ class CommandNSUnSuspend : public Command
class NSSuspend : public Module
{
+ CommandNSSuspend commandnssuspend;
+ CommandNSUnSuspend commandnsunsuspend;
+
public:
NSSuspend(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSSuspend());
- this->AddCommand(NickServ, new CommandNSUnSuspend());
+ this->AddCommand(NickServ, &commandnssuspend);
+ this->AddCommand(NickServ, &commandnsunsuspend);
}
};
diff --git a/modules/core/ns_update.cpp b/modules/core/ns_update.cpp
index 7192932e1..7e4ae6e01 100644
--- a/modules/core/ns_update.cpp
+++ b/modules/core/ns_update.cpp
@@ -52,13 +52,15 @@ class CommandNSUpdate : public Command
class NSUpdate : public Module
{
+ CommandNSUpdate commandnsupdate;
+
public:
NSUpdate(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(NickServ, new CommandNSUpdate());
+ this->AddCommand(NickServ, &commandnsupdate);
}
};
diff --git a/modules/core/os_akill.cpp b/modules/core/os_akill.cpp
index 44ba85cfb..b46e9ae7f 100644
--- a/modules/core/os_akill.cpp
+++ b/modules/core/os_akill.cpp
@@ -397,13 +397,15 @@ class CommandOSAKill : public Command
class OSAKill : public Module
{
+ CommandOSAKill commandosakill;
+
public:
OSAKill(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSAKill());
+ this->AddCommand(OperServ, &commandosakill);
}
};
diff --git a/modules/core/os_chankill.cpp b/modules/core/os_chankill.cpp
index 52eef6b1a..4f8b7f34c 100644
--- a/modules/core/os_chankill.cpp
+++ b/modules/core/os_chankill.cpp
@@ -103,13 +103,15 @@ class CommandOSChanKill : public Command
class OSChanKill : public Module
{
+ CommandOSChanKill commandoschankill;
+
public:
OSChanKill(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSChanKill());
+ this->AddCommand(OperServ, &commandoschankill);
}
};
diff --git a/modules/core/os_chanlist.cpp b/modules/core/os_chanlist.cpp
index b8a4f7c83..774a4e2c7 100644
--- a/modules/core/os_chanlist.cpp
+++ b/modules/core/os_chanlist.cpp
@@ -86,13 +86,15 @@ class CommandOSChanList : public Command
class OSChanList : public Module
{
+ CommandOSChanList commandoschanlist;
+
public:
OSChanList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSChanList());
+ this->AddCommand(OperServ, &commandoschanlist);
}
};
diff --git a/modules/core/os_clearmodes.cpp b/modules/core/os_clearmodes.cpp
index c6f28c8e6..ddea9379d 100644
--- a/modules/core/os_clearmodes.cpp
+++ b/modules/core/os_clearmodes.cpp
@@ -174,13 +174,15 @@ class CommandOSClearModes : public Command
class OSClearModes : public Module
{
+ CommandOSClearModes commandosclearmodes;
+
public:
OSClearModes(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSClearModes());
+ this->AddCommand(OperServ, &commandosclearmodes);
}
};
diff --git a/modules/core/os_defcon.cpp b/modules/core/os_defcon.cpp
index cb25b50bf..ca7f2ace4 100644
--- a/modules/core/os_defcon.cpp
+++ b/modules/core/os_defcon.cpp
@@ -52,10 +52,10 @@ class DefConTimeout : public Timer
};
static DefConTimeout *timeout;
-class CommandOSDEFCON : public Command
+class CommandOSDefcon : public Command
{
public:
- CommandOSDEFCON() : Command("DEFCON", 1, 1, "operserv/defcon")
+ CommandOSDefcon() : Command("DEFCON", 1, 1, "operserv/defcon")
{
}
@@ -130,10 +130,12 @@ class CommandOSDEFCON : public Command
}
};
-class OSDEFCON : public Module
+class OSDefcon : public Module
{
+ CommandOSDefcon commandosdefcon;
+
public:
- OSDEFCON(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
+ OSDefcon(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
if (!Config.DefConLevel)
throw ModuleException("Invalid configuration settings");
@@ -144,7 +146,7 @@ class OSDEFCON : public Module
Implementation i[] = { I_OnPreUserConnect, I_OnChannelModeSet, I_OnChannelModeUnset, I_OnPreCommandRun, I_OnPreCommand, I_OnUserConnect, I_OnChannelModeAdd, I_OnChannelCreate };
ModuleManager::Attach(i, this, 8);
- this->AddCommand(OperServ, new CommandOSDEFCON());
+ this->AddCommand(OperServ, &commandosdefcon);
defconParseModeString(Config.DefConChanModes);
}
@@ -489,4 +491,4 @@ static Anope::string defconReverseModes(const Anope::string &modes)
return newmodes;
}
-MODULE_INIT(OSDEFCON)
+MODULE_INIT(OSDefcon)
diff --git a/modules/core/os_global.cpp b/modules/core/os_global.cpp
index 25c2dfe85..01c4dee5f 100644
--- a/modules/core/os_global.cpp
+++ b/modules/core/os_global.cpp
@@ -49,13 +49,15 @@ class CommandOSGlobal : public Command
class OSGlobal : public Module
{
+ CommandOSGlobal commandosglobal;
+
public:
OSGlobal(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSGlobal());
+ this->AddCommand(OperServ, &commandosglobal);
}
};
diff --git a/modules/core/os_help.cpp b/modules/core/os_help.cpp
index d2ab5412e..ad26fb2d6 100644
--- a/modules/core/os_help.cpp
+++ b/modules/core/os_help.cpp
@@ -38,13 +38,15 @@ class CommandOSHelp : public Command
class OSHelp : public Module
{
+ CommandOSHelp commandoshelp;
+
public:
OSHelp(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSHelp());
+ this->AddCommand(OperServ, &commandoshelp);
}
};
diff --git a/modules/core/os_ignore.cpp b/modules/core/os_ignore.cpp
index 5a97462fd..eb15ad3b1 100644
--- a/modules/core/os_ignore.cpp
+++ b/modules/core/os_ignore.cpp
@@ -133,13 +133,15 @@ class CommandOSIgnore : public Command
class OSIgnore : public Module
{
+ CommandOSIgnore commandosignore;
+
public:
OSIgnore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSIgnore());
+ this->AddCommand(OperServ, &commandosignore);
Implementation i[] = { I_OnDatabaseRead, I_OnDatabaseWrite };
ModuleManager::Attach(i, this, 2);
diff --git a/modules/core/os_jupe.cpp b/modules/core/os_jupe.cpp
index 68ff2841a..a6d478708 100644
--- a/modules/core/os_jupe.cpp
+++ b/modules/core/os_jupe.cpp
@@ -64,13 +64,15 @@ class CommandOSJupe : public Command
class OSJupe : public Module
{
+ CommandOSJupe commandosjupe;
+
public:
OSJupe(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSJupe());
+ this->AddCommand(OperServ, &commandosjupe);
}
};
diff --git a/modules/core/os_kick.cpp b/modules/core/os_kick.cpp
index edb92436a..44a474d04 100644
--- a/modules/core/os_kick.cpp
+++ b/modules/core/os_kick.cpp
@@ -67,13 +67,15 @@ class CommandOSKick : public Command
class OSKick : public Module
{
+ CommandOSKick commandoskick;
+
public:
OSKick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSKick());
+ this->AddCommand(OperServ, &commandoskick);
}
};
diff --git a/modules/core/os_mode.cpp b/modules/core/os_mode.cpp
index 40ed4cfe0..52d73e88a 100644
--- a/modules/core/os_mode.cpp
+++ b/modules/core/os_mode.cpp
@@ -58,13 +58,15 @@ class CommandOSMode : public Command
class OSMode : public Module
{
+ CommandOSMode commandosmode;
+
public:
OSMode(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSMode());
+ this->AddCommand(OperServ, &commandosmode);
}
};
diff --git a/modules/core/os_modinfo.cpp b/modules/core/os_modinfo.cpp
index e2dccc673..83864ef54 100644
--- a/modules/core/os_modinfo.cpp
+++ b/modules/core/os_modinfo.cpp
@@ -67,13 +67,15 @@ class CommandOSModInfo : public Command
class OSModInfo : public Module
{
+ CommandOSModInfo commandosmodinfo;
+
public:
OSModInfo(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSModInfo());
+ this->AddCommand(OperServ, &commandosmodinfo);
}
};
diff --git a/modules/core/os_modlist.cpp b/modules/core/os_modlist.cpp
index 265776917..0089c4b92 100644
--- a/modules/core/os_modlist.cpp
+++ b/modules/core/os_modlist.cpp
@@ -217,13 +217,15 @@ class CommandOSModList : public Command
class OSModList : public Module
{
+ CommandOSModList commandosmodlist;
+
public:
OSModList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSModList());
+ this->AddCommand(OperServ, &commandosmodlist);
}
};
diff --git a/modules/core/os_modload.cpp b/modules/core/os_modload.cpp
index a75fa9489..dbc07139f 100644
--- a/modules/core/os_modload.cpp
+++ b/modules/core/os_modload.cpp
@@ -59,6 +59,8 @@ class CommandOSModLoad : public Command
class OSModLoad : public Module
{
+ CommandOSModLoad commandosmodload;
+
public:
OSModLoad(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -66,7 +68,7 @@ class OSModLoad : public Module
this->SetType(CORE);
this->SetPermanent(true);
- this->AddCommand(OperServ, new CommandOSModLoad());
+ this->AddCommand(OperServ, &commandosmodload);
}
};
diff --git a/modules/core/os_modunload.cpp b/modules/core/os_modunload.cpp
index 50720459e..de70a6bb0 100644
--- a/modules/core/os_modunload.cpp
+++ b/modules/core/os_modunload.cpp
@@ -61,6 +61,8 @@ class CommandOSModUnLoad : public Command
class OSModUnLoad : public Module
{
+ CommandOSModUnLoad commandosmodunload;
+
public:
OSModUnLoad(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -68,7 +70,7 @@ class OSModUnLoad : public Module
this->SetType(CORE);
this->SetPermanent(true);
- this->AddCommand(OperServ, new CommandOSModUnLoad());
+ this->AddCommand(OperServ, &commandosmodunload);
}
};
diff --git a/modules/core/os_news.cpp b/modules/core/os_news.cpp
index 42ca764c3..03cfe3603 100644
--- a/modules/core/os_news.cpp
+++ b/modules/core/os_news.cpp
@@ -398,15 +398,19 @@ class CommandOSRandomNews : public NewsBase
class OSNews : public Module
{
+ CommandOSLogonNews commandoslogonnews;
+ CommandOSOperNews commandosopernews;
+ CommandOSRandomNews commandosrandomnews;
+
public:
OSNews(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSLogonNews());
- this->AddCommand(OperServ, new CommandOSOperNews());
- this->AddCommand(OperServ, new CommandOSRandomNews());
+ this->AddCommand(OperServ, &commandoslogonnews);
+ this->AddCommand(OperServ, &commandosopernews);
+ this->AddCommand(OperServ, &commandosrandomnews);
Implementation i[] = { I_OnUserModeSet, I_OnUserConnect, I_OnDatabaseRead, I_OnDatabaseWrite };
ModuleManager::Attach(i, this, 4);
diff --git a/modules/core/os_noop.cpp b/modules/core/os_noop.cpp
index 1cf480bc8..91c1b93e8 100644
--- a/modules/core/os_noop.cpp
+++ b/modules/core/os_noop.cpp
@@ -76,13 +76,15 @@ class CommandOSNOOP : public Command
class OSNOOP : public Module
{
+ CommandOSNOOP commandosnoop;
+
public:
OSNOOP(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSNOOP());
+ this->AddCommand(OperServ, &commandosnoop);
}
};
diff --git a/modules/core/os_oline.cpp b/modules/core/os_oline.cpp
index 4d90072ca..64f89b0e5 100644
--- a/modules/core/os_oline.cpp
+++ b/modules/core/os_oline.cpp
@@ -67,6 +67,8 @@ class CommandOSOLine : public Command
class OSOLine : public Module
{
+ CommandOSOLine commandosoline;
+
public:
OSOLine(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -76,7 +78,7 @@ class OSOLine : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSOLine());
+ this->AddCommand(OperServ, &commandosoline);
}
};
diff --git a/modules/core/os_quit.cpp b/modules/core/os_quit.cpp
index fb8fce2fd..a2c86bc82 100644
--- a/modules/core/os_quit.cpp
+++ b/modules/core/os_quit.cpp
@@ -45,13 +45,15 @@ class CommandOSQuit : public Command
class OSQuit : public Module
{
+ CommandOSQuit commandosquit;
+
public:
OSQuit(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSQuit());
+ this->AddCommand(OperServ, &commandosquit);
}
};
diff --git a/modules/core/os_reload.cpp b/modules/core/os_reload.cpp
index 4e64bba8d..722a6bd27 100644
--- a/modules/core/os_reload.cpp
+++ b/modules/core/os_reload.cpp
@@ -47,13 +47,15 @@ class CommandOSReload : public Command
class OSReload : public Module
{
+ CommandOSReload commandosreload;
+
public:
OSReload(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSReload());
+ this->AddCommand(OperServ, &commandosreload);
}
};
diff --git a/modules/core/os_restart.cpp b/modules/core/os_restart.cpp
index ae7075661..00f273958 100644
--- a/modules/core/os_restart.cpp
+++ b/modules/core/os_restart.cpp
@@ -45,13 +45,15 @@ class CommandOSRestart : public Command
class OSRestart : public Module
{
+ CommandOSRestart commandosrestart;
+
public:
OSRestart(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSRestart());
+ this->AddCommand(OperServ, &commandosrestart);
}
};
diff --git a/modules/core/os_session.cpp b/modules/core/os_session.cpp
index 879dc6cf7..8b8e06dca 100644
--- a/modules/core/os_session.cpp
+++ b/modules/core/os_session.cpp
@@ -460,14 +460,17 @@ class CommandOSException : public Command
class OSSession : public Module
{
+ CommandOSSession commandossession;
+ CommandOSException commandosexception;
+
public:
OSSession(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSSession());
- this->AddCommand(OperServ, new CommandOSException());
+ this->AddCommand(OperServ, &commandossession);
+ this->AddCommand(OperServ, &commandosexception);
}
};
diff --git a/modules/core/os_set.cpp b/modules/core/os_set.cpp
index 4bfdaa68a..74398cb9a 100644
--- a/modules/core/os_set.cpp
+++ b/modules/core/os_set.cpp
@@ -299,13 +299,15 @@ class CommandOSSet : public Command
class OSSet : public Module
{
+ CommandOSSet commandosset;
+
public:
OSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSSet());
+ this->AddCommand(OperServ, &commandosset);
}
};
diff --git a/modules/core/os_shutdown.cpp b/modules/core/os_shutdown.cpp
index afd04d1a9..c65a21673 100644
--- a/modules/core/os_shutdown.cpp
+++ b/modules/core/os_shutdown.cpp
@@ -44,13 +44,15 @@ class CommandOSShutdown : public Command
class OSShutdown : public Module
{
+ CommandOSShutdown commandosshutdown;
+
public:
OSShutdown(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSShutdown());
+ this->AddCommand(OperServ, &commandosshutdown);
}
};
diff --git a/modules/core/os_snline.cpp b/modules/core/os_snline.cpp
index c401a40c5..0c01e6b75 100644
--- a/modules/core/os_snline.cpp
+++ b/modules/core/os_snline.cpp
@@ -415,6 +415,8 @@ class CommandOSSNLine : public Command
class OSSNLine : public Module
{
+ CommandOSSNLine commandossnline;
+
public:
OSSNLine(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -424,7 +426,7 @@ class OSSNLine : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSSNLine());
+ this->AddCommand(OperServ, &commandossnline);
}
};
diff --git a/modules/core/os_sqline.cpp b/modules/core/os_sqline.cpp
index c2e446b6b..dbf0d4c18 100644
--- a/modules/core/os_sqline.cpp
+++ b/modules/core/os_sqline.cpp
@@ -395,6 +395,8 @@ class CommandOSSQLine : public Command
class OSSQLine : public Module
{
+ CommandOSSQLine commandossqline;
+
public:
OSSQLine(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -404,7 +406,7 @@ class OSSQLine : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSSQLine());
+ this->AddCommand(OperServ, &commandossqline);
}
};
diff --git a/modules/core/os_staff.cpp b/modules/core/os_staff.cpp
index db701fc55..e8a8bf0a9 100644
--- a/modules/core/os_staff.cpp
+++ b/modules/core/os_staff.cpp
@@ -69,13 +69,15 @@ class CommandOSStaff : public Command
class OSStaff : public Module
{
+ CommandOSStaff commandosstaff;
+
public:
OSStaff(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSStaff());
+ this->AddCommand(OperServ, &commandosstaff);
}
};
diff --git a/modules/core/os_stats.cpp b/modules/core/os_stats.cpp
index 7b6bccae7..9cb3865a1 100644
--- a/modules/core/os_stats.cpp
+++ b/modules/core/os_stats.cpp
@@ -294,13 +294,15 @@ class CommandOSStats : public Command
class OSStats : public Module
{
+ CommandOSStats commandosstats;
+
public:
OSStats(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSStats());
+ this->AddCommand(OperServ, &commandosstats);
}
};
diff --git a/modules/core/os_svsnick.cpp b/modules/core/os_svsnick.cpp
index 0277aed76..78d6e0485 100644
--- a/modules/core/os_svsnick.cpp
+++ b/modules/core/os_svsnick.cpp
@@ -83,6 +83,8 @@ class CommandOSSVSNick : public Command
class OSSVSNick : public Module
{
+ CommandOSSVSNick commandossvsnick;
+
public:
OSSVSNick(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -92,7 +94,7 @@ class OSSVSNick : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSSVSNick());
+ this->AddCommand(OperServ, &commandossvsnick);
}
};
diff --git a/modules/core/os_szline.cpp b/modules/core/os_szline.cpp
index 94ef5f792..73d6fc0fe 100644
--- a/modules/core/os_szline.cpp
+++ b/modules/core/os_szline.cpp
@@ -393,6 +393,8 @@ class CommandOSSZLine : public Command
class OSSZLine : public Module
{
+ CommandOSSZLine commandosszline;
+
public:
OSSZLine(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -402,7 +404,7 @@ class OSSZLine : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSSZLine());
+ this->AddCommand(OperServ, &commandosszline);
}
};
diff --git a/modules/core/os_umode.cpp b/modules/core/os_umode.cpp
index 1f8f55ddb..1b65e7e18 100644
--- a/modules/core/os_umode.cpp
+++ b/modules/core/os_umode.cpp
@@ -70,6 +70,8 @@ class CommandOSUMode : public Command
class OSUMode : public Module
{
+ CommandOSUMode commandosumode;
+
public:
OSUMode(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -79,7 +81,7 @@ class OSUMode : public Module
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSUMode());
+ this->AddCommand(OperServ, &commandosumode);
}
};
diff --git a/modules/core/os_update.cpp b/modules/core/os_update.cpp
index 5f19d142d..0765b6acd 100644
--- a/modules/core/os_update.cpp
+++ b/modules/core/os_update.cpp
@@ -41,13 +41,15 @@ class CommandOSUpdate : public Command
class OSUpdate : public Module
{
+ CommandOSUpdate commandosupdate;
+
public:
OSUpdate(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSUpdate());
+ this->AddCommand(OperServ, &commandosupdate);
}
};
diff --git a/modules/core/os_userlist.cpp b/modules/core/os_userlist.cpp
index 96ae9659b..dbc055cb6 100644
--- a/modules/core/os_userlist.cpp
+++ b/modules/core/os_userlist.cpp
@@ -86,13 +86,15 @@ class CommandOSUserList : public Command
class OSUserList : public Module
{
+ CommandOSUserList commandosuserlist;
+
public:
OSUserList(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
this->SetAuthor("Anope");
this->SetType(CORE);
- this->AddCommand(OperServ, new CommandOSUserList());
+ this->AddCommand(OperServ, &commandosuserlist);
}
};
diff --git a/modules/core/ss_main.cpp b/modules/core/ss_main.cpp
index b15e8ce9e..ffe06c795 100644
--- a/modules/core/ss_main.cpp
+++ b/modules/core/ss_main.cpp
@@ -29,6 +29,8 @@ class CommandSSHelp : public Command
class SSMain : public Module
{
+ CommandSSHelp commandsshelp;
+
public:
SSMain(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -44,7 +46,7 @@ class SSMain : public Module
}
Alog() << "Done creating SS";
- this->AddCommand(statserv, new CommandSSHelp());
+ this->AddCommand(statserv, &commandsshelp);
}
~SSMain()
diff --git a/modules/extra/cs_appendtopic.cpp b/modules/extra/cs_appendtopic.cpp
index 8d376e661..42ccb8187 100644
--- a/modules/extra/cs_appendtopic.cpp
+++ b/modules/extra/cs_appendtopic.cpp
@@ -130,6 +130,8 @@ class CommandCSAppendTopic : public Command
class CSAppendTopic : public Module
{
+ CommandCSAppendTopic commandcsappendtopic;
+
public:
CSAppendTopic(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -138,7 +140,7 @@ class CSAppendTopic : public Module
this->SetAuthor(AUTHOR);
this->SetType(SUPPORTED);
- this->AddCommand(ChanServ, new CommandCSAppendTopic());
+ this->AddCommand(ChanServ, &commandcsappendtopic);
/* English (US) */
const char *langtable_en_us[] = {
diff --git a/modules/extra/cs_enforce.cpp b/modules/extra/cs_enforce.cpp
index a32d5a8f5..cba949e1d 100644
--- a/modules/extra/cs_enforce.cpp
+++ b/modules/extra/cs_enforce.cpp
@@ -220,6 +220,8 @@ class CommandCSEnforce : public Command
class CSEnforce : public Module
{
+ CommandCSEnforce commandcsenforce;
+
public:
CSEnforce(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
@@ -228,7 +230,7 @@ class CSEnforce : public Module
this->SetAuthor(AUTHOR);
this->SetType(SUPPORTED);
- this->AddCommand(ChanServ, new CommandCSEnforce());
+ this->AddCommand(ChanServ, &commandcsenforce);
/* English (US) */
const char *langtable_en_us[] = {
diff --git a/modules/extra/cs_set_misc.cpp b/modules/extra/cs_set_misc.cpp
index d287a24c1..48cd636e7 100644
--- a/modules/extra/cs_set_misc.cpp
+++ b/modules/extra/cs_set_misc.cpp
@@ -69,6 +69,7 @@ class CSSetMisc : public Module
Anope::string Name;
Anope::string Desc;
bool ShowHidden;
+ Command *c;
CommandInfo(const Anope::string &name, const Anope::string &desc, bool showhidden) : Name(name), Desc(desc), ShowHidden(showhidden) { }
};
@@ -89,10 +90,23 @@ class CSSetMisc : public Module
for (std::map<Anope::string, CommandInfo *>::const_iterator it = this->Commands.begin(), it_end = this->Commands.end(); it != it_end; ++it)
{
if (set)
- set->DelSubcommand(it->first);
+ {
+ Command *c = set->FindSubcommand(it->second->Name);
+ if (c)
+ {
+ set->DelSubcommand(c);
+ delete c;
+ }
+ }
if (saset)
- saset->DelSubcommand(it->first);
- delete it->second;
+ {
+ Command *c = saset->FindSubcommand(it->second->Name);
+ if (c)
+ {
+ saset->DelSubcommand(c);
+ delete c;
+ }
+ }
}
this->Commands.clear();
diff --git a/modules/extra/cs_tban.cpp b/modules/extra/cs_tban.cpp
index d09677df6..d01c96ee5 100644
--- a/modules/extra/cs_tban.cpp
+++ b/modules/extra/cs_tban.cpp
@@ -91,12 +91,14 @@ class CommandCSTBan : public Command
class CSTBan : public Module
{
+ CommandCSTBan commandcstban;
+
public:
CSTBan(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
me = this;
- this->AddCommand(ChanServ, new CommandCSTBan());
+ this->AddCommand(ChanServ, &commandcstban);
this->SetAuthor(AUTHOR);
this->SetType(SUPPORTED);
diff --git a/modules/extra/hs_request.cpp b/modules/extra/hs_request.cpp
index 5c5a649f0..6fd48a3ef 100644
--- a/modules/extra/hs_request.cpp
+++ b/modules/extra/hs_request.cpp
@@ -342,15 +342,20 @@ class CommandHSWaiting : public HSListBase
class HSRequest : public Module
{
+ CommandHSRequest commandhsrequest;
+ CommandHSActivate commandhsactive;
+ CommandHSReject commandhsreject;
+ CommandHSWaiting commandhswaiting;
+
public:
HSRequest(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
me = this;
- this->AddCommand(HostServ, new CommandHSRequest());
- this->AddCommand(HostServ, new CommandHSActivate());
- this->AddCommand(HostServ, new CommandHSReject());
- this->AddCommand(HostServ, new CommandHSWaiting());
+ this->AddCommand(HostServ, &commandhsrequest);
+ this->AddCommand(HostServ, &commandhsactive);
+ this->AddCommand(HostServ, &commandhsreject);
+ this->AddCommand(HostServ, &commandhswaiting);
this->SetAuthor(AUTHOR);
this->SetType(SUPPORTED);
diff --git a/modules/extra/ns_set_misc.cpp b/modules/extra/ns_set_misc.cpp
index 8ab54fd05..87113fb67 100644
--- a/modules/extra/ns_set_misc.cpp
+++ b/modules/extra/ns_set_misc.cpp
@@ -107,10 +107,23 @@ class NSSetMisc : public Module
for (std::map<Anope::string, CommandInfo *>::const_iterator it = this->Commands.begin(), it_end = this->Commands.end(); it != it_end; ++it)
{
if (set)
- set->DelSubcommand(it->first);
+ {
+ Command *c = set->FindSubcommand(it->second->Name);
+ if (c)
+ {
+ set->DelSubcommand(c);
+ delete c;
+ }
+ }
if (saset)
- saset->DelSubcommand(it->first);
- delete it->second;
+ {
+ Command *c = saset->FindSubcommand(it->second->Name);
+ if (c)
+ {
+ saset->DelSubcommand(c);
+ delete c;
+ }
+ }
}
this->Commands.clear();
diff --git a/src/command.cpp b/src/command.cpp
index de9842d78..93c1f978c 100644
--- a/src/command.cpp
+++ b/src/command.cpp
@@ -16,6 +16,8 @@ Command::Command(const Anope::string &sname, size_t min_params, size_t max_param
Command::~Command()
{
+ if (this->module)
+ this->module->DelCommand(this->service, this);
}
CommandReturn Command::Execute(User *u, const std::vector<Anope::string> &)
@@ -39,7 +41,13 @@ bool Command::AddSubcommand(Command *c)
return false;
}
-bool Command::DelSubcommand(const Anope::string &cname)
+bool Command::DelSubcommand(Command *c)
{
return false;
}
+
+Command *Command::FindSubcommand(const Anope::string &name)
+{
+ return NULL;
+}
+
diff --git a/src/module.cpp b/src/module.cpp
index 97cf717de..aa46a6f63 100644
--- a/src/module.cpp
+++ b/src/module.cpp
@@ -40,81 +40,6 @@ Module::~Module()
/* Clear any active callbacks this module has */
ModuleManager::ClearCallBacks(this);
- /**
- * ok, im going to walk every hash looking for commands we own, now, not exactly elegant or efficiant :)
- **/
- if (HostServ)
- {
- for (CommandMap::iterator it = HostServ->Commands.begin(), it_end = HostServ->Commands.end(); it != it_end; )
- {
- Command *c = it->second;
- ++it;
-
- if (c->module == this)
- this->DelCommand(HostServ, c);
- }
- }
-
- if (BotServ)
- {
- for (CommandMap::iterator it = BotServ->Commands.begin(), it_end = BotServ->Commands.end(); it != it_end; )
- {
- Command *c = it->second;
- ++it;
-
- if (c->module == this)
- this->DelCommand(BotServ, c);
- }
- }
-
- if (MemoServ)
- {
- for (CommandMap::iterator it = MemoServ->Commands.begin(), it_end = MemoServ->Commands.end(); it != it_end; )
- {
- Command *c = it->second;
- ++it;
-
- if (c->module == this)
- this->DelCommand(MemoServ, c);
- }
- }
-
- if (NickServ)
- {
- for (CommandMap::iterator it = NickServ->Commands.begin(), it_end = NickServ->Commands.end(); it != it_end; )
- {
- Command *c = it->second;
- ++it;
-
- if (c->module == this)
- this->DelCommand(NickServ, c);
- }
- }
-
- if (ChanServ)
- {
- for (CommandMap::iterator it = ChanServ->Commands.begin(), it_end = ChanServ->Commands.end(); it != it_end; )
- {
- Command *c = it->second;
- ++it;
-
- if (c->module == this)
- this->DelCommand(ChanServ, c);
- }
- }
-
- if (OperServ)
- {
- for (CommandMap::iterator it = OperServ->Commands.begin(), it_end = OperServ->Commands.end(); it != it_end; )
- {
- Command *c = it->second;
- ++it;
-
- if (c->module == this)
- this->DelCommand(OperServ, c);
- }
- }
-
std::list<Module *>::iterator it = std::find(Modules.begin(), Modules.end(), this);
if (it != Modules.end())
Modules.erase(it);
diff --git a/src/modules.cpp b/src/modules.cpp
index 26401351d..5cd9b6b69 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -185,7 +185,6 @@ int Module::AddCommand(BotInfo *bi, Command *c)
if (it.second != true)
{
Alog() << "Error creating command " << c->name << ". Command already exists!";
- delete c;
return MOD_ERR_EXISTS;
}