summaryrefslogtreecommitdiff
path: root/src/core/cs_invite.c
diff options
context:
space:
mode:
authorDukePyrolator <DukePyrolator@5417fbe8-f217-4b02-8779-1006273d7864>2009-09-17 05:35:43 +0000
committerDukePyrolator <DukePyrolator@5417fbe8-f217-4b02-8779-1006273d7864>2009-09-17 05:35:43 +0000
commit396cee7d0d008cfdbbb9eb5398e24f2f0df27912 (patch)
tree6598b9198f28b123be476151faa2056b9f094c50 /src/core/cs_invite.c
parentfcf104f0ca168bff1a60da9247e2ef7cbe15fbaf (diff)
partly fixed chanserv invite (it still sends the wrong message when inviting another user)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2509 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core/cs_invite.c')
-rw-r--r--src/core/cs_invite.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/core/cs_invite.c b/src/core/cs_invite.c
index 3d3d97d84..cf66c9b04 100644
--- a/src/core/cs_invite.c
+++ b/src/core/cs_invite.c
@@ -18,7 +18,7 @@
class CommandCSInvite : public Command
{
public:
- CommandCSInvite() : Command("INVITE", 1, 1)
+ CommandCSInvite() : Command("INVITE", 1, 3)
{
}
@@ -27,6 +27,7 @@ class CommandCSInvite : public Command
const char *chan = params[0].c_str();
Channel *c;
ChannelInfo *ci;
+ User *u2;
if (!(c = findchan(chan)))
{
@@ -42,11 +43,22 @@ class CommandCSInvite : public Command
return MOD_CONT;
}
- if (is_on_chan(c, u))
+ if (params.size() == 1)
+ u2 = u;
+ else
+ {
+ if (!(u2 = finduser(params[1].c_str())))
+ {
+ notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, params[1].c_str());
+ return MOD_CONT;
+ }
+ }
+
+ if (is_on_chan(c, u2))
notice_lang(s_ChanServ, u, CHAN_INVITE_ALREADY_IN, c->name);
else
{
- ircdproto->SendInvite(whosends(ci), chan, u->nick);
+ ircdproto->SendInvite(whosends(ci), chan, u2->nick);
notice_lang(s_ChanServ, u, CHAN_INVITE_SUCCESS, c->name);
}
return MOD_CONT;