summaryrefslogtreecommitdiff
path: root/modules/commands/os_mode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/os_mode.cpp')
-rw-r--r--modules/commands/os_mode.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/modules/commands/os_mode.cpp b/modules/commands/os_mode.cpp
index 33387bff6..db0ac73b5 100644
--- a/modules/commands/os_mode.cpp
+++ b/modules/commands/os_mode.cpp
@@ -45,13 +45,13 @@ class CommandOSMode : public Command
{
for (Channel::ChanUserList::iterator it = c->users.begin(), it_end = c->users.end(); it != it_end; ++it)
{
- ChanUserContainer *uc = *it;
+ ChanUserContainer *uc = it->second;
if (uc->user->HasMode("OPER"))
continue;
- for (std::set<Anope::string>::iterator it2 = uc->status.modes.begin(), it2_end = uc->status.modes.end(); it2 != it2_end; ++it2)
- c->RemoveMode(c->ci->WhoSends(), *it2, uc->user->GetUID(), false);
+ for (size_t i = 0; i < uc->status.Modes().length(); ++i)
+ c->RemoveMode(c->ci->WhoSends(), ModeManager::FindChannelModeByChar(uc->status.Modes()[i]), uc->user->GetUID(), false);
}
source.Reply(_("All modes cleared on %s."), c->name.c_str());