aboutsummaryrefslogtreecommitdiff
path: root/src/cmd_privmsg.cpp
diff options
context:
space:
mode:
authorGravatar brain2006-09-06 17:21:59 +0000
committerGravatar brain2006-09-06 17:21:59 +0000
commit4cf0ae1308fe98757de42ffbe391e61844ac9e0a (patch)
tree76cf38a7afd4d31b6345561442bdee4692c5a847 /src/cmd_privmsg.cpp
parentJOIN now has a TS parameter on it. The client protocol will ignore this when ... (diff)
Command result codes. This isnt finished yet, still got to do most of the modules, and alter CallCommandHandler
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5149 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/cmd_privmsg.cpp')
-rw-r--r--src/cmd_privmsg.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/cmd_privmsg.cpp b/src/cmd_privmsg.cpp
index e387b6ae3..0623fcd85 100644
--- a/src/cmd_privmsg.cpp
+++ b/src/cmd_privmsg.cpp
@@ -28,7 +28,7 @@ extern "C" command_t* init_command(InspIRCd* Instance)
return new cmd_privmsg(Instance);
}
-void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
+CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
{
userrec *dest;
chanrec *chan;
@@ -36,7 +36,7 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
user->idle_lastmsg = ServerInstance->Time();
if (ServerInstance->Parser->LoopCall(user, this, parameters, pcnt, 0))
- return;
+ return CMD_SUCCESS;
if ((parameters[0][0] == '$') && ((*user->oper) || (ServerInstance->ULine(user->server))))
{
@@ -44,7 +44,7 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
std::string temp = parameters[1];
FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,(void*)parameters[0],TYPE_SERVER,temp,0));
if (MOD_RESULT)
- return;
+ return CMD_FAILURE;
parameters[1] = (char*)temp.c_str();
// notice to server mask
const char* servermask = parameters[0] + 1;
@@ -53,7 +53,7 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
ServerInstance->ServerPrivmsgAll("%s",parameters[1]);
}
FOREACH_MOD(I_OnUserMessage,OnUserMessage(user,(void*)parameters[0],TYPE_SERVER,parameters[1],0));
- return;
+ return CMD_SUCCESS;
}
char status = 0;
if ((*parameters[0] == '@') || (*parameters[0] == '%') || (*parameters[0] == '+'))
@@ -71,12 +71,12 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
if ((chan->modes[CM_NOEXTERNAL]) && (!chan->HasUser(user)))
{
user->WriteServ("404 %s %s :Cannot send to channel (no external messages)", user->nick, chan->name);
- return;
+ return CMD_FAILURE;
}
if ((chan->modes[CM_MODERATED]) && (chan->GetStatus(user) < STATUS_VOICE))
{
user->WriteServ("404 %s %s :Cannot send to channel (+m)", user->nick, chan->name);
- return;
+ return CMD_FAILURE;
}
}
int MOD_RESULT = 0;
@@ -84,14 +84,14 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
std::string temp = parameters[1];
FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,chan,TYPE_CHANNEL,temp,status));
if (MOD_RESULT) {
- return;
+ return CMD_FAILURE;
}
parameters[1] = (char*)temp.c_str();
if (temp == "")
{
user->WriteServ("412 %s No text to send", user->nick);
- return;
+ return CMD_FAILURE;
}
chan->WriteAllExceptSender(user, status, "PRIVMSG %s :%s", chan->name, parameters[1]);
@@ -101,8 +101,9 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
{
/* no such nick/channel */
user->WriteServ("401 %s %s :No such nick/channel",user->nick, parameters[0]);
+ return CMD_FAILURE;
}
- return;
+ return CMD_SUCCESS;
}
dest = ServerInstance->FindNick(parameters[0]);
@@ -119,7 +120,7 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
std::string temp = parameters[1];
FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,dest,TYPE_USER,temp,0));
if (MOD_RESULT) {
- return;
+ return CMD_FAILURE;
}
parameters[1] = (char*)temp.c_str();
@@ -135,5 +136,8 @@ void cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user)
{
/* no such nick/channel */
user->WriteServ("401 %s %s :No such nick/channel",user->nick, parameters[0]);
+ return CMD_FAILURE;
}
+ return CMD_SUCCESS;
}
+