X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2Fmodcmd.c;h=a23dc7c0b1177391f00764a3b744b40a389a2f91;hp=2c0182bbd894741afbfa3d7e7841de18c14d7828;hb=0b17bccd2d7fbef5652168d11d4f0af1f41252d3;hpb=44436a96352a38631237978c9fd431cef3d85cfb diff --git a/src/modcmd.c b/src/modcmd.c index 2c0182b..a23dc7c 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -614,6 +614,27 @@ int set_trigger_callback(int botid, trigger_callback_t *func) { return 1; } +int flush_trigger_cache(int botid, int clientid) { + struct ChanNode *chan; + struct trigger_cache *trigger, *last; + for(chan = getAllChans(NULL); chan; chan = getAllChans(chan)) { + last = NULL; + for(trigger = chan->trigger; trigger; trigger = trigger->next) { + if(trigger->botid == botid && (botid || trigger->clientid == clientid)) { + if(last) + last->next = trigger->next; + else + chan->trigger = trigger->next; + free(trigger->trigger); + free(trigger); + break; + } else + last = trigger; + } + } + return 1; +} + int changeBotwiseChannelTrigger(int botid, int clientid, struct ChanNode *chan, char *new_trigger) { struct trigger_cache *trigger; for(trigger = chan->trigger; trigger; trigger = trigger->next) {