summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-07-31 21:37:45 -0400
committerAdam <Adam@anope.org>2010-07-31 21:37:45 -0400
commitc770c47e18121e93bcdd06b1ab5f161440ffcfe2 (patch)
tree8e80d54507ab705e2dc51278c533c6000c8af1da
parent9d0d44d738705a457ce08599ba50c97033a43c71 (diff)
Don't dynamically allocate commands in modules anymore, instead made them members of modules. This means the commands are automatically destructed when the module is unloaded. Cleans up some old ugly code.
-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;
}