/* * ================================================================= * Filename: m_helpers.c * Description: Command /helpers - Global Online Helper List * Kodlayan: Salazar * 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" #define RPL_HELPERS 357 #define RPL_ENDOFHELPERS 358 #define MSG_HELPERS "HELPERS" #define TOK_HELPERS "HP" static ModuleInfo *ModHelpers; #define MyMod ModHelpers->handle static Command *AddCommand(char *msg, char *token, int (*func)()); DLLFUNC int m_helpers(aClient *cptr, aClient *sptr, int parc, char *parv[]); extern void sendto_one(aClient *to, char *pattern, ...); Command *CmdHelpers; ModuleHeader Mod_Header = { "helpers", "Clients & Staff", "Command /helpers - Author: Salazar - Lists Global Online Helpers", "3.2-b8-2", NULL }; DLLFUNC int Mod_Init(ModuleInfo *modinfo) { ModHelpers = modinfo; CmdHelpers = AddCommand(MSG_HELPERS, TOK_HELPERS, m_helpers); return (CmdHelpers ? MOD_SUCCESS : MOD_FAILED); } DLLFUNC int Mod_Load(int module_load) { return MOD_SUCCESS; } DLLFUNC int Mod_Unload(int module_unload) { if (CmdHelpers) CommandDel(CmdHelpers); return MOD_SUCCESS; } static Command *AddCommand(char *msg, char *token, int (*func)()) { Command *cmd; if (CommandExists(msg) || CommandExists(token)) return NULL; cmd = CommandAdd(MyMod, msg, token, func, MAXPARA, 0); return cmd; } int m_helpers(aClient *cptr, aClient *sptr, int parc, char *parv[]) { aClient *acptr; char buf[BUFSIZE]; int yetkililer = 0, mesgul = 0, toplam = 0; sendto_snomask_global(4, "*** [HELPERS] %s is checking the global IRC Helper list.", sptr->name); sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+", me.name, sptr->name); sendto_one(sptr, ":%s 339 %s : IRC Helper List (Global Network) ", me.name, sptr->name); sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+", me.name, sptr->name); for (acptr = client; acptr; acptr = acptr->next) { if (IsPerson(acptr) && IsHelpOp(acptr)) { if (acptr->user->away) { sendto_one(sptr, ":%s %d %s : %-15s %-18s %-25s Away", me.name, RPL_HELPERS, sptr->name, acptr->name, "IRC Helper", acptr->user->server); mesgul++; } else { sendto_one(sptr, ":%s %d %s : %-15s %-18s %-25s", me.name, RPL_HELPERS, sptr->name, acptr->name, "IRC Helper", acptr->user->server); yetkililer++; } } } toplam = yetkililer + mesgul; sprintf(buf, "Total: %d IRC Helpers Online - %d Active, %d Away", toplam, yetkililer, mesgul); sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+", me.name, sptr->name); sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_HELPERS, sptr->name, buf); sendto_one(sptr, ":%s %d %s :End of /HELPERS list.", me.name, RPL_ENDOFHELPERS, sptr->name); return 0; }