summaryrefslogtreecommitdiff
path: root/modules/core/cs_kick.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-11-24 21:40:56 -0600
committerAdam <Adam@anope.org>2010-12-12 19:36:19 -0500
commitcb6ef574e3df5cc846247450b74ca37d265f319e (patch)
tree8ce3374a537c312af63c78125bfea4622bb188f0 /modules/core/cs_kick.cpp
parent37e02a3594fdddc3d5a3df0501c528f42db6c4da (diff)
Send replies from fantasy commands back to the channel, this will be expanded on later
Diffstat (limited to 'modules/core/cs_kick.cpp')
-rw-r--r--modules/core/cs_kick.cpp35
1 files changed, 15 insertions, 20 deletions
diff --git a/modules/core/cs_kick.cpp b/modules/core/cs_kick.cpp
index 43f3dda80..d02ae36a5 100644
--- a/modules/core/cs_kick.cpp
+++ b/modules/core/cs_kick.cpp
@@ -20,35 +20,31 @@ class CommandCSKick : public Command
{
}
- CommandReturn Execute(User *u, const std::vector<Anope::string> &params)
+ CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> &params)
{
- Anope::string chan = params[0];
- Anope::string target = params[1];
- Anope::string reason = params.size() > 2 ? params[2] : "Requested";
+ const Anope::string &chan = params[0];
+ const Anope::string &target = params[1];
+ const Anope::string &reason = params.size() > 2 ? params[2] : "Requested";
- Channel *c = findchan(chan);
- ChannelInfo *ci;
+ User *u = source.u;
+ ChannelInfo *ci = source.ci;
+ Channel *c = ci->c;
User *u2;
- int is_same;
-
- is_same = target.equals_cs(u->nick) ? 1 : target.equals_ci(u->nick);
-
- if (c)
- ci = c->ci;
+ bool is_same = target.equals_ci(u->nick);
if (!c)
- u->SendMessage(ChanServ, CHAN_X_NOT_IN_USE, chan.c_str());
+ source.Reply(CHAN_X_NOT_IN_USE, chan.c_str());
else if (is_same ? !(u2 = u) : !(u2 = finduser(target)))
- u->SendMessage(ChanServ, NICK_X_NOT_IN_USE, target.c_str());
+ source.Reply(NICK_X_NOT_IN_USE, target.c_str());
else if (!is_same ? !check_access(u, ci, CA_KICK) : !check_access(u, ci, CA_KICKME))
- u->SendMessage(ChanServ, ACCESS_DENIED);
+ source.Reply(ACCESS_DENIED);
else if (!is_same && (ci->HasFlag(CI_PEACE)) && get_access(u2, ci) >= get_access(u, ci))
- u->SendMessage(ChanServ, ACCESS_DENIED);
+ source.Reply(ACCESS_DENIED);
else if (u2->IsProtected())
- u->SendMessage(ChanServ, ACCESS_DENIED);
+ source.Reply(ACCESS_DENIED);
else if (!c->FindUser(u2))
- u->SendMessage(ChanServ, NICK_X_NOT_ON_CHAN, u2->nick.c_str(), c->name.c_str());
+ source.Reply(NICK_X_NOT_ON_CHAN, u2->nick.c_str(), c->name.c_str());
else
{
// XXX
@@ -75,8 +71,7 @@ class CommandCSKick : public Command
void OnServHelp(User *u)
{
- if (this->name.equals_ci("KICK"))
- u->SendMessage(ChanServ, CHAN_HELP_CMD_KICK);
+ u->SendMessage(ChanServ, CHAN_HELP_CMD_KICK);
}
};