diff options
Diffstat (limited to 'modules/core/cs_status.cpp')
-rw-r--r-- | modules/core/cs_status.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/modules/core/cs_status.cpp b/modules/core/cs_status.cpp index d40e721d8..9310f3382 100644 --- a/modules/core/cs_status.cpp +++ b/modules/core/cs_status.cpp @@ -20,27 +20,17 @@ class CommandCSStatus : public Command { } - CommandReturn Execute(User *u, const std::vector<Anope::string> ¶ms) + CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) { - ChannelInfo *ci; - User *u2; - Anope::string chan = params[0]; - Anope::string nick = params[1]; - Anope::string temp; + User *u = source.u; + ChannelInfo *ci = source.ci; + const Anope::string &nick = params[1]; - if (!(ci = cs_findchan(chan))) - { - temp = chan; - chan = nick; - nick = temp; - ci = cs_findchan(chan); - } - if (!ci) - u->SendMessage(ChanServ, CHAN_STATUS_NOT_REGGED, temp.c_str()); - else if ((u2 = finduser(nick))) - u->SendMessage(ChanServ, CHAN_STATUS_INFO, chan.c_str(), nick.c_str(), get_access(u2, ci)); + User *u2 = finduser(nick); + if (u2) + source.Reply(CHAN_STATUS_INFO, ci->name.c_str(), u2->nick.c_str(), get_access(u2, ci)); else /* !u2 */ - u->SendMessage(ChanServ, CHAN_STATUS_NOTONLINE, nick.c_str()); + source.Reply(CHAN_STATUS_NOTONLINE, nick.c_str()); return MOD_CONT; } |