X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodcmd.c;h=9af13218fc32a47f7a12efe713d5b83fadce5763;hb=be17e22b842b7b831694422b204777c93fd478bb;hp=2c0182bbd894741afbfa3d7e7841de18c14d7828;hpb=44436a96352a38631237978c9fd431cef3d85cfb;p=NeonServV5.git diff --git a/src/modcmd.c b/src/modcmd.c index 2c0182b..9af1321 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -69,7 +69,7 @@ static const struct default_language_entry msgtab[] = { {"MODCMD_PUBCMD", "Public commands in $b%s$b are restricted."}, /* {ARGS: "#TestChan"} */ {"MODCMD_ACCESS_DENIED", "Access denied."}, {"MODCMD_SUBCOMMANDS", "Subcommands of %s: %s"}, /* {ARGS: "bot", "ADD, DEL, EDIT"} */ - {"MODCMD_CROSSCHAN", "You must be in %s (or on its userlist) to use this command."}, + {"MODCMD_CROSSCHAN", "You must be in %s (or on its userlist) to use this command."}, /* {ARGS: "#TestChan"} */ {"MODCMD_UNKNOWN", "$b%s$b is an unknown command."}, /* {ARGS: "bla"} */ {NULL, NULL} }; @@ -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) { @@ -835,13 +856,15 @@ void bind_botwise_set_parameters(int botid, int clientid, char *cmd, char *param free(cbind->parameters[i]); cbind->paramcount = 0; } - char *a, *b = parameters; - do { - a = strstr(b, " "); - if(a) *a = '\0'; - cbind->parameters[cbind->paramcount++] = strdup(b); - if(a) b = a+1; - } while(a); + if(parameters) { + char *a, *b = parameters; + do { + a = strstr(b, " "); + if(a) *a = '\0'; + cbind->parameters[cbind->paramcount++] = strdup(b); + if(a) b = a+1; + } while(a); + } return; } }