diff options
Diffstat (limited to 'modules/extra')
| -rw-r--r-- | modules/extra/cs_appendtopic.cpp | 4 | ||||
| -rw-r--r-- | modules/extra/cs_enforce.cpp | 4 | ||||
| -rw-r--r-- | modules/extra/cs_set_misc.cpp | 20 | ||||
| -rw-r--r-- | modules/extra/cs_tban.cpp | 4 | ||||
| -rw-r--r-- | modules/extra/hs_request.cpp | 13 | ||||
| -rw-r--r-- | modules/extra/ns_set_misc.cpp | 19 |
6 files changed, 51 insertions, 13 deletions
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(); |
