]> jfr.im git - irc/quakenet/newserv.git/blobdiff - localuser/localuser.c
nickwatch: Implement hook for messages/notices.
[irc/quakenet/newserv.git] / localuser / localuser.c
index c75e31eaef91eef2a24e8441915d50f481994de2..9e056b9581e5fec1bf28bc8babdc8e915ec6c381 100644 (file)
@@ -364,7 +364,7 @@ int handlemessageornotice(void *source, int cargc, char **cargv, int isnotice) {
   char *ch;
   char targetnick[NICKLEN+1];
   int foundat;
-  void *nargs[2];
+  void *nargs[3];
   int i;
   
   /* Should have target and message */
@@ -372,15 +372,23 @@ int handlemessageornotice(void *source, int cargc, char **cargv, int isnotice) {
     return CMD_OK;
   }
 
-  if (cargv[0][0]=='#' || cargv[0][0]=='+') {
-    /* Channel message/notice */
-    return CMD_OK;
-  }
-  
   if ((sender=getnickbynumericstr((char *)source))==NULL) {
     Error("localuser",ERR_WARNING,"PRIVMSG from non existant user %s",(char *)source);
     return CMD_OK;
   }
+
+  freesstring(sender->message);
+  sender->message = getsstring(cargv[1], 512);
+
+  nargs[0] = sender;
+  nargs[1] = cargv[1];
+  nargs[2] = (void *)(uintptr_t)isnotice;
+  triggerhook(HOOK_NICK_MESSAGE, nargs);
+
+  if (cargv[0][0]=='#' || cargv[0][0]=='+') {
+    /* Channel message/notice */
+    return CMD_OK;
+  }
   
   /* Check for a "secure" message (foo@bar) */
   foundat=0;