/* identify a nick from operserv */ /* there are modules from Certus and n00bie with the same functionality available */ #define AUTHOR "Jens 'DukePyrolator' Voss" #define VERSION "1.2" #include "module.h" int os_forceid(User *u); void help_operserv(User *u); int AnopeInit(int argc, char **argv) { Command *c; c = createCommand("forceid",os_forceid, is_services_oper, -1, -1, -1, -1, -1); moduleAddCommand(OPERSERV, c, MOD_TAIL); moduleSetOperHelp(help_operserv); alog("[os_forceid] Loaded"); moduleAddAuthor(AUTHOR); moduleAddVersion(VERSION); return MOD_CONT; } int os_forceid(User *u) { User *u2; NickAlias *na; char *temp = moduleGetLastBuffer(); char *nick = myStrGetToken(temp,' ',0); #ifndef IRC_PTLINK char tsbuf[16]; #endif if (!(na=findnick(nick))) { notice(s_OperServ, u->nick, "%s is not a registered nick", nick); goto MODSTOP; } if (!(u2=finduser(nick))) { notice(s_OperServ, u->nick, "%s is not online", nick); goto MODSTOP; } u2->na = na; u2->na->status |= NS_IDENTIFIED; u2->na->last_seen = time(NULL); u2->na->u = u2; #ifndef IRC_PTLINK snprintf(tsbuf, sizeof(tsbuf), "%lu", u->timestamp); change_user_mode(u2, "+rd", tsbuf); #else change_user_mode(u2, "+r", ""); #endif notice(s_NickServ, u2->nick, "You are identified now"); MODSTOP: if (temp) free(temp); if (nick) free(nick); return MOD_STOP; } void help_operserv(User *u) { notice(s_OperServ, u->nick, " FORCEID identifies a user to nickserv"); }