void versionscan_newnick(int hooknum, void* arg) { nick* np=(nick*)arg; /* ignore opers or auth'd users, helps cut down on spam during a burst */ if (!(IsOper(np) || IsAccount(np)) && (versionscan_mode == VS_SCAN)) { sendmessagetouser(versionscan_nick, np, "\001VERSION\001"); } }
int lua_message(nick *np, char *message, ...) { char buf[512]; va_list va; va_start(va, message); vsnprintf(buf, sizeof(buf), message, va); va_end(va); sendmessagetouser(lua_nick, np, "%s", buf); return 0; }
int versionscan_scan(void* sender, int cargc, char** cargv) { nick* np=(nick*)sender; nick* n; channel* cp; if (cargc < 1) { sendnoticetouser(versionscan_nick, np, "Syntax: scan <target>"); return CMD_ERROR; } if (versionscan_mode != VS_SCAN) { sendnoticetouser(versionscan_nick, np, "Scanning of users is currently disabled."); return CMD_ERROR; } if (cargv[0][0] == '#') { if ((cp=findchannel(cargv[0]))) { sendmessagetochannel(versionscan_nick, cp, "\001VERSION\001"); sendnoticetouser(versionscan_nick, np, "Done."); } else { sendnoticetouser(versionscan_nick, np, "No such channel."); return CMD_ERROR; } } else { if ((n=getnickbynick(cargv[0]))) { if (IsOper(n)) { sendnoticetouser(versionscan_nick, np, "Cannot scan IRC Operators."); return CMD_ERROR; } sendmessagetouser(versionscan_nick, n, "\001VERSION\001"); sendnoticetouser(versionscan_nick, np, "Done."); } else { sendnoticetouser(versionscan_nick, np, "No such nick."); return CMD_ERROR; } } return CMD_OK; }