diff options
-rw-r--r-- | src/commands.cpp | 8 | ||||
-rw-r--r-- | src/mode.cpp | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/commands.cpp b/src/commands.cpp index 4ff6edc31..f3798b364 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -335,10 +335,16 @@ void handle_kill(char **parameters, int pcnt, userrec *user) { userrec *u = Find(parameters[0]); char killreason[MAXBUF]; - + log(DEBUG,"kill: %s %s",parameters[0],parameters[1]); if (u) { + int MOD_RESULT = 0; + FOREACH_RESULT(OnKill(user,u,parameters[1])); + if (MOD_RESULT) { + return; + } + if (strcmp(ServerName,u->server)) { // remote kill diff --git a/src/mode.cpp b/src/mode.cpp index eaee04f75..22e9816b3 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -1290,6 +1290,11 @@ void handle_mode(char **parameters, int pcnt, userrec *user) return; } } + if ((Ptr) && (!has_channel(user,Ptr))) + { + WriteServ(user->fd,"442 %s %s :You're not on that channel!",user->nick, Ptr->name); + return; + } process_modes(parameters,user,Ptr,cstatus(user,Ptr),pcnt,false,false,false); } |