From: Michael Poole Date: Sat, 15 Dec 2007 18:19:51 +0000 (-0500) Subject: Make triggers work properly again for privsmsgs to channels. X-Git-Tag: v1.4.0-rc3~45 X-Git-Url: http://git.pk910.de/?p=srvx.git;a=commitdiff_plain;h=b179b2c1631c053404b888f0bef816aed43995c4 Make triggers work properly again for privsmsgs to channels. --- diff --git a/src/proto-common.c b/src/proto-common.c index 729c8fc..ee089ad 100644 --- a/src/proto-common.c +++ b/src/proto-common.c @@ -431,7 +431,7 @@ privmsg_chan_helper(struct chanNode *cn, void *data) { struct privmsg_desc *pd = data; struct modeNode *mn; - struct chanmsg_func *cf = &chanmsg_funcs[(unsigned char)pd->text[0]]; + struct chanmsg_func *cf; int x; /* Don't complain if it can't find the modeNode because the channel might @@ -440,8 +440,9 @@ privmsg_chan_helper(struct chanNode *cn, void *data) mn->idle_since = now; /* Never send a NOTICE to a channel to one of the services */ - if (!pd->is_notice && cf->func - && ((cn->modes & MODE_REGISTERED) || GetUserMode(cn, cf->service))) + cf = &chanmsg_funcs[(unsigned char)pd->text[0]]; + if (!pd->is_notice && cf->func && GetUserMode(cn, cf->service) && !IsDeaf(cf->service)) + cf->func(pd->user, cn, pd->text+1, cf->service); /* This catches *all* text sent to the channel that the services server sees */ for (x = 0; x < ALLCHANMSG_FUNCS_MAX; x++) {