summaryrefslogtreecommitdiff
path: root/modules/commands/ns_recover.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/ns_recover.cpp')
-rw-r--r--modules/commands/ns_recover.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/modules/commands/ns_recover.cpp b/modules/commands/ns_recover.cpp
index 33a97646c..e9455f88a 100644
--- a/modules/commands/ns_recover.cpp
+++ b/modules/commands/ns_recover.cpp
@@ -56,13 +56,13 @@ class NSRecoverRequest : public IdentifyRequest
Log(LOG_COMMAND, source, cmd) << "and was automatically identified to " << u->Account()->display;
}
- if (Config->NSRestoreOnRecover)
+ if (Config->GetModule("ns_recover")->Get<bool>("restoreonrecover"))
{
if (!u->chans.empty())
{
NSRecoverExtensibleInfo *ei = new NSRecoverExtensibleInfo;
for (User::ChanUserList::iterator it = u->chans.begin(), it_end = u->chans.end(); it != it_end; ++it)
- (*ei)[(*it)->chan->name] = (*it)->status;
+ (*ei)[it->first->name] = it->second->status;
source.GetUser()->Extend("ns_recover_info", ei);
}
@@ -201,12 +201,11 @@ class NSRecover : public Module
CommandNSRecover commandnsrecover;
public:
- NSRecover(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE),
+ NSRecover(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR),
commandnsrecover(this)
{
- this->SetAuthor("Anope");
- if (Config->NoNicknameOwnership)
+ if (Config->GetBlock("options")->Get<bool>("nonicknameownership"))
throw ModuleException(modname + " can not be used with options:nonicknameownership enabled");
Implementation i[] = { I_OnUserNickChange, I_OnJoinChannel, I_OnShutdown, I_OnRestart };
@@ -234,7 +233,7 @@ class NSRecover : public Module
void OnUserNickChange(User *u, const Anope::string &oldnick) anope_override
{
- if (Config->NSRestoreOnRecover)
+ if (Config->GetModule(this)->Get<bool>("restoreonrecover"))
{
NSRecoverExtensibleInfo *ei = u->GetExt<NSRecoverExtensibleInfo *>("ns_recover_info");
@@ -256,7 +255,7 @@ class NSRecover : public Module
void OnJoinChannel(User *u, Channel *c) anope_override
{
- if (Config->NSRestoreOnRecover)
+ if (Config->GetModule(this)->Get<bool>("restoreonrecover"))
{
NSRecoverExtensibleInfo *ei = u->GetExt<NSRecoverExtensibleInfo *>("ns_recover_info");
@@ -265,8 +264,8 @@ class NSRecover : public Module
std::map<Anope::string, ChannelStatus>::iterator it = ei->find(c->name);
if (it != ei->end())
{
- for (std::set<Anope::string>::iterator it2 = it->second.modes.begin(), it2_end = it->second.modes.end(); it2 != it2_end; ++it2)
- c->SetMode(c->ci->WhoSends(), ModeManager::FindChannelModeByName(*it2), u->GetUID());
+ for (size_t i = 0; i < it->second.Modes().length(); ++i)
+ c->SetMode(c->ci->WhoSends(), ModeManager::FindChannelModeByChar(it->second.Modes()[i]), u->GetUID());
ei->erase(it);
if (ei->empty())