#include "module.h" #define AUTHOR "Jens 'DukePyrolator' Voss" #define VERSION "1.1" int do_glist2(User *u); void AnopeInit(int argc, char **argv) { Command *c; c = createCommand("glist", do_glist2, NULL, -1, -1, -1, -1, -1); moduleAddCommand(NICKSERV, c, MOD_HEAD); moduleAddAuthor(AUTHOR); moduleAddVersion(VERSION); } int do_glist2(User *u) { char *nick = strtok(NULL, " "); NickAlias *na, *na2; int i, days_left, hours_left, minutes_left; int extime = 0; time_t now = time(NULL); if ((nick ? !is_services_admin(u) : !nick_identified(u))) { notice_lang(s_NickServ, u, ACCESS_DENIED); } else if ((!nick ? !(na = u->na) : !(na = findnick(nick)))) { notice_lang(s_NickServ, u, (!nick ? NICK_NOT_REGISTERED : NICK_X_NOT_REGISTERED), nick); } else if (na->status & NS_VERBOTEN) { notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); } else { notice_lang(s_NickServ, u, nick ? NICK_GLIST_HEADER_X : NICK_GLIST_HEADER, na->nc->display); for (i = 0; i < na->nc->aliases.count; i++) { na2 = na->nc->aliases.list[i]; if (na2->nc == na->nc) { extime = na2->last_seen + NSExpire; days_left = ((extime - now)/86400); hours_left = ((extime - now)/3600) % 24; minutes_left = ((extime - now)/60) % 60; if (na2->status & NS_NO_EXPIRE) { notice_user(s_NickServ, u, " !%-20s (will not expire)", na2->nick); } else { notice_user(s_NickServ, u, " %-20s (expires in %02d days, %02d hours and %02d minutes)", na2->nick, days_left, hours_left, minutes_left ); } } } notice_lang(s_NickServ, u, NICK_GLIST_FOOTER, na->nc->aliases.count); } return MOD_STOP; }