summaryrefslogtreecommitdiff
path: root/src/command_parse.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-02-19 08:38:26 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-02-19 08:38:26 +0000
commitddb970dd670bcd905c8f34458f8fcf70e9fd89bd (patch)
treedbd6e3fb9300eb04ff9feed8344d4e6891172141 /src/command_parse.cpp
parentbe4c8f3f21f6b5c1a56a60d5843a62d5a3321039 (diff)
1) Fix for nickname overruled with new cullList stuff -- we have to change their nick, its not safe to quit them as it messes up the nick hash.
2) Add a mute flag for users, so we can drop commands from users who have been placed on the cullList. This is independent of the actual cullList and can be used as a general mute flag e.g. by shun modules. 3) Fix /kill to also not quit the user immediately, remove need for CMD_USER_DELETED return anywhere in the code. *** THIS NEEDS TESTING BY QA *** git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6596 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/command_parse.cpp')
-rw-r--r--src/command_parse.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/command_parse.cpp b/src/command_parse.cpp
index 259d636d3..f84df3342 100644
--- a/src/command_parse.cpp
+++ b/src/command_parse.cpp
@@ -153,8 +153,7 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p
new_parameters[splithere] = item.c_str();
new_parameters[extra] = extrastuff.c_str();
- if (CommandObj->Handle(new_parameters,pcnt,user) == CMD_USER_DELETED)
- return 1;
+ CommandObj->Handle(new_parameters,pcnt,user);
dupes[item.c_str()] = true;
}
@@ -198,8 +197,7 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p
* record out from under us (e.g. if we /kill a comma sep list, and we're
* in that list ourselves) abort if we're gone.
*/
- if (CommandObj->Handle(new_parameters,pcnt,user) == CMD_USER_DELETED)
- return 1;
+ CommandObj->Handle(new_parameters,pcnt,user);
dupes[item.c_str()] = true;
}
@@ -344,10 +342,7 @@ void CommandParser::ProcessCommand(userrec *user, std::string &cmd)
*/
CmdResult result = cm->second->Handle(command_p,items,user);
- if (result != CMD_USER_DELETED)
- {
- FOREACH_MOD(I_OnPostCommand,OnPostCommand(command, command_p, items, user, result,cmd));
- }
+ FOREACH_MOD(I_OnPostCommand,OnPostCommand(command, command_p, items, user, result,cmd));
return;
}
else
@@ -407,8 +402,11 @@ void CommandParser::ProcessBuffer(std::string &buffer,userrec *user)
if (buffer.length())
{
- ServerInstance->Log(DEBUG,"-> :%s %s",user->nick,buffer.c_str());
- this->ProcessCommand(user,buffer);
+ if (!user->muted)
+ {
+ ServerInstance->Log(DEBUG,"-> :%s %s",user->nick,buffer.c_str());
+ this->ProcessCommand(user,buffer);
+ }
}
}