summaryrefslogtreecommitdiff
path: root/src/botserv.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-12-06 17:06:57 -0500
committerAdam <Adam@anope.org>2010-12-12 19:37:03 -0500
commitaed53dbb47822a79eb9a6b61095ad04ec3d67818 (patch)
tree72d3210b5609ea2163854d14ec7fb2f48d8b4d12 /src/botserv.cpp
parenta507816701d136a1c22d2f6779d811840d61577c (diff)
Cleaned up some things, made the protocol modules use some basic inheritance to cut back on their code duplication. More work can be done in the future to remove even more of it.
Diffstat (limited to 'src/botserv.cpp')
-rw-r--r--src/botserv.cpp59
1 files changed, 17 insertions, 42 deletions
diff --git a/src/botserv.cpp b/src/botserv.cpp
index 32b6a42a3..ddd8dc15f 100644
--- a/src/botserv.cpp
+++ b/src/botserv.cpp
@@ -504,13 +504,14 @@ static void bot_kick(ChannelInfo *ci, User *u, LanguageString message, ...)
/*************************************************************************/
-/* Makes a simple ban and kicks the target */
-
-void bot_raw_ban(User *requester, ChannelInfo *ci, const Anope::string &nick, const Anope::string &reason)
+/* Makes a simple ban and kicks the target
+ * @param requester The user requesting the kickban
+ * @param ci The channel
+ * @param u The user being kicked
+ * @param reason The reason
+ */
+void bot_raw_ban(User *requester, ChannelInfo *ci, User *u, const Anope::string &reason)
{
- Anope::string mask;
- User *u = finduser(nick);
-
if (!u || !ci)
return;
@@ -522,7 +523,7 @@ void bot_raw_ban(User *requester, ChannelInfo *ci, const Anope::string &nick, co
ChanAccess *u_access = ci->GetAccess(u), *req_access = ci->GetAccess(requester);
int16 u_level = u_access ? u_access->level : 0, req_level = req_access ? req_access->level : 0;
- if (ci->HasFlag(CI_PEACE) && !requester->nick.equals_ci(nick) && u_level >= req_level)
+ if (ci->HasFlag(CI_PEACE) && !requester->nick.equals_ci(u->nick) && u_level >= req_level)
return;
if (ModeManager::FindChannelModeByName(CMODE_EXCEPT) && is_excepted(ci, u) == 1)
@@ -531,6 +532,7 @@ void bot_raw_ban(User *requester, ChannelInfo *ci, const Anope::string &nick, co
return;
}
+ Anope::string mask;
get_idealban(ci, u, mask);
ci->c->SetMode(NULL, CMODE_BAN, mask);
@@ -544,12 +546,14 @@ void bot_raw_ban(User *requester, ChannelInfo *ci, const Anope::string &nick, co
/*************************************************************************/
-/* Makes a kick with a "dynamic" reason ;) */
-
-void bot_raw_kick(User *requester, ChannelInfo *ci, const Anope::string &nick, const Anope::string &reason)
+/* Makes a kick with a "dynamic" reason ;)
+ * @param requester The user requesting the kick
+ * @param ci The channel
+ * @param u The user being kicked
+ * @param reason The reason for the kick
+ */
+void bot_raw_kick(User *requester, ChannelInfo *ci, User *u, const Anope::string &reason)
{
- User *u = finduser(nick);
-
if (!u || !ci || !ci->c || !ci->c->FindUser(u))
return;
@@ -561,7 +565,7 @@ void bot_raw_kick(User *requester, ChannelInfo *ci, const Anope::string &nick, c
ChanAccess *u_access = ci->GetAccess(u), *req_access = ci->GetAccess(requester);
int16 u_level = u_access ? u_access->level : 0, req_level = req_access ? req_access->level : 0;
- if (ci->HasFlag(CI_PEACE) && !requester->nick.equals_ci(nick) && u_level >= req_level)
+ if (ci->HasFlag(CI_PEACE) && !requester->nick.equals_ci(u->nick) && u_level >= req_level)
return;
if (ci->HasFlag(CI_SIGNKICK) || (ci->HasFlag(CI_SIGNKICK_LEVEL) && !check_access(requester, ci, CA_SIGNKICK)))
@@ -572,35 +576,6 @@ void bot_raw_kick(User *requester, ChannelInfo *ci, const Anope::string &nick, c
/*************************************************************************/
-/* Makes a mode operation on a channel for a nick */
-
-void bot_raw_mode(User *requester, ChannelInfo *ci, const Anope::string &mode, const Anope::string &nick)
-{
- char buf[BUFSIZE] = "";
- User *u;
-
- u = finduser(nick);
-
- if (!u || !ci || !ci->c || !ci->c->FindUser(u))
- return;
-
- snprintf(buf, BUFSIZE - 1, "%ld", static_cast<long>(Anope::CurTime));
-
- if (ModeManager::FindUserModeByName(UMODE_PROTECTED) && u->IsProtected() && mode[0] == '-' && requester != u)
- {
- ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", GetString(requester, ACCESS_DENIED).c_str());
- return;
- }
-
- ChanAccess *u_access = ci->GetAccess(u), *req_access = ci->GetAccess(requester);
- int16 u_level = u_access ? u_access->level : 0, req_level = req_access ? req_access->level : 0;
- if (mode[0] == '-' && ci->HasFlag(CI_PEACE) && !requester->nick.equals_ci(nick) && u_level >= req_level)
- return;
-
- ci->c->SetModes(NULL, "%s %s", mode.c_str(), nick.c_str());
-}
-
-/*************************************************************************/
/**
* Normalize buffer stripping control characters and colors
* @param A string to be parsed for control and color codes