X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/0cf29aa5dcc8d5ed7d17c85316d93544e3714880..d968d1fe839ed60c77a692bf7fddc46b233ed419:/lua/luabot.c diff --git a/lua/luabot.c b/lua/luabot.c index 9e7ae143..10aea58e 100644 --- a/lua/luabot.c +++ b/lua/luabot.c @@ -455,16 +455,25 @@ char *printallmodes(channel *cp) { return buf; } +static char *printlimitedmodes(channel *cp, flag_t before) { + static char buf[1024]; + + snprintf(buf, sizeof(buf), "%s", printflags(cp->flags, cmodeflags)); + + return buf; +} + void lua_onmode(int hooknum, void *arg) { void **arglist = (void **)arg; channel *cp = (channel *)arglist[0]; chanindex *ci = cp->index; nick *np = arglist[1]; + flag_t beforeflags = (flag_t)(long)arglist[3]; if(np) { - lua_avpcall("irc_onmode", "Sls", ci->name, np->numeric, printallmodes(cp)); + lua_avpcall("irc_onmode", "Slss", ci->name, np->numeric, printallmodes(cp), printlimitedmodes(cp, beforeflags)); } else { - lua_avpcall("irc_onmode", "S0s", ci->name, printallmodes(cp)); + lua_avpcall("irc_onmode", "S0ss", ci->name, printallmodes(cp), printlimitedmodes(cp, beforeflags)); } }