summaryrefslogtreecommitdiff
path: root/src/channels.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-02-14 00:28:41 -0500
committerAdam <Adam@anope.org>2013-02-14 01:20:18 -0500
commit7656c25e38529013e53bd9e95a3060d3baf1f8f2 (patch)
treecb4d48db62935463405d7a2998703f9849244cd1 /src/channels.cpp
parent5cf1edeb6efe6277f5674e0647f2c9c091346ddc (diff)
Made chanserv/unban with no parameters unban you in every channel you have access in
Diffstat (limited to 'src/channels.cpp')
-rw-r--r--src/channels.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 9265fdacf..2e6023dae 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -996,10 +996,12 @@ void Channel::SetCorrectModes(User *user, bool give_modes, bool check_noop)
}
}
-void Channel::Unban(const User *u, bool full)
+bool Channel::Unban(const User *u, bool full)
{
if (!this->HasMode("BAN"))
- return;
+ return false;
+
+ bool ret = false;
std::pair<Channel::ModeList::iterator, Channel::ModeList::iterator> bans = this->GetModeList("BAN");
for (; bans.first != bans.second;)
@@ -1007,8 +1009,13 @@ void Channel::Unban(const User *u, bool full)
Entry ban("BAN", bans.first->second);
++bans.first;
if (ban.Matches(u, full))
+ {
this->RemoveMode(NULL, "BAN", ban.GetMask());
+ ret = true;
+ }
}
+
+ return ret;
}
Channel* Channel::Find(const Anope::string &name)