/* * ================================================================= * Filename: nicktracking.c * Description: Local/Global Nickname Change Tracking * Description: Linkli Serverlardaki nick degisimlerini gosterir * Author: Raistlin * Version: Unreal3.2 * ================================================================= */ #include "config.h" #include "struct.h" #include "common.h" #include "sys.h" #include "numeric.h" #include "msg.h" #include "channel.h" #include #include #include #include "h.h" int cb_local_nick(aClient *sptr, char *oldnick); int cb_remote_nick(aClient *cptr, aClient *sptr, char *newnick); ModuleHeader MOD_HEADER(NickTracking) = { "nicktracking", "IRCops Only", "Author: Raistlin - Tracks Local/Global Nickname Changes", "3.2-b8-1", NULL }; DLLFUNC int MOD_INIT(NickTracking)(ModuleInfo *modinfo) { HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_NICKCHANGE, cb_local_nick); HookAddEx(modinfo->handle, HOOKTYPE_REMOTE_NICKCHANGE, cb_remote_nick); return MOD_SUCCESS; } DLLFUNC int MOD_LOAD(NickTracking)(int module_load) { return MOD_SUCCESS; } DLLFUNC int MOD_UNLOAD(NickTracking)(int module_unload) { return MOD_SUCCESS; } int cb_local_nick(aClient *sptr, char *oldnick) { aClient *acptr; char buf[512]; if (sptr && IsPerson(sptr) && sptr->user) { snprintf(buf, sizeof(buf), ":%s NOTICE * :*** Notice -- Nick-Change: %s (%s@%s) is now %s [Server: %s]", me.name, sptr->name, sptr->user->username, sptr->user->realhost, oldnick, me.name); for (acptr = client; acptr; acptr = acptr->next) { if (IsPerson(acptr) && IsOper(acptr) && MyConnect(acptr)) { sendto_one(acptr, "%s", buf); } } } return 0; } int cb_remote_nick(aClient *cptr, aClient *sptr, char *newnick) { aClient *acptr; char buf[512]; char *server_origin; if (sptr && IsPerson(sptr) && sptr->user) { server_origin = (sptr->srvptr) ? sptr->srvptr->name : (cptr ? cptr->name : "Unknown"); snprintf(buf, sizeof(buf), ":%s NOTICE * :*** Notice -- Nick-Change: %s (%s@%s) is now %s [Server: %s]", me.name, sptr->name, sptr->user->username, sptr->user->realhost, newnick, server_origin); for (acptr = client; acptr; acptr = acptr->next) { if (IsPerson(acptr) && IsOper(acptr) && MyConnect(acptr)) { sendto_one(acptr, "%s", buf); } } } return 0; }