diff options
author | n0kS Phr33d0m <god@politeia.in> | 2013-08-23 06:43:57 +0200 |
---|---|---|
committer | n0kS Phr33d0m <god@politeia.in> | 2013-08-23 06:43:57 +0200 |
commit | 97930620079db049ee9ae5a53f0c6d4491ac0fb5 (patch) | |
tree | 5ed193e7fcf9940e815e9a518ddb7d7d2f803720 /modules/commands/cs_xop.cpp | |
parent | f86dc247e521b893d134b08329e69e17ccf34e1f (diff) | |
parent | 5ac0c9a32732fde91844a9b8c64e676893ea7331 (diff) |
Merge branch '1.9' of github.com:anope/anope into 1.9
Diffstat (limited to 'modules/commands/cs_xop.cpp')
-rw-r--r-- | modules/commands/cs_xop.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/modules/commands/cs_xop.cpp b/modules/commands/cs_xop.cpp index 10d28fc03..cd08a33a9 100644 --- a/modules/commands/cs_xop.cpp +++ b/modules/commands/cs_xop.cpp @@ -315,7 +315,7 @@ class CommandCSXOP : public Command ChanAccess *caccess = ci->GetAccess(number - 1); - if (this->source.command.upper() != XOPChanAccess::DetermineLevel(caccess)) + if (caccess->provider->name != "access/xop" || this->source.command.upper() != caccess->AccessSerialize()) return; ++deleted; @@ -338,7 +338,10 @@ class CommandCSXOP : public Command { ChanAccess *a = ci->GetAccess(i); - if (a->mask.equals_ci(mask) && XOPChanAccess::DetermineLevel(a) == source.command.upper()) + if (a->provider->name != "access/xop" || source.command.upper() != a->AccessSerialize()) + continue; + + if (a->mask.equals_ci(mask)) { Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "to delete " << a->mask; @@ -397,7 +400,7 @@ class CommandCSXOP : public Command const ChanAccess *a = ci->GetAccess(Number - 1); - if (this->source.command.upper() != XOPChanAccess::DetermineLevel(a)) + if (a->provider->name != "access/xop" || this->source.command.upper() != a->AccessSerialize()) return; ListFormatter::ListEntry entry; @@ -414,7 +417,7 @@ class CommandCSXOP : public Command { const ChanAccess *a = ci->GetAccess(i); - if (XOPChanAccess::DetermineLevel(a) != source.command.upper()) + if (a->provider->name != "access/xop" || source.command.upper() != a->AccessSerialize()) continue; else if (!nick.empty() && !Anope::Match(a->mask, nick)) continue; @@ -465,8 +468,11 @@ class CommandCSXOP : public Command for (unsigned i = ci->GetAccessCount(); i > 0; --i) { const ChanAccess *access = ci->GetAccess(i - 1); - if (XOPChanAccess::DetermineLevel(access) == source.command.upper()) - delete ci->EraseAccess(i - 1); + + if (access->provider->name != "access/xop" || source.command.upper() != access->AccessSerialize()) + continue; + + delete ci->EraseAccess(i - 1); } FOREACH_MOD(OnAccessClear, (ci, source)); |