/* This is called on module init, before Server Ready */ DLLFUNC int MOD_INIT(m_dummy)(ModuleInfo *modinfo) { CmodeInfo req; ircd_log(LOG_ERROR, "debug: mod_init called from chmodetst module"); ModuleSetOptions(modinfo->handle, MOD_OPT_PERM); sendto_realops("chmodetst loading..."); /* TODO: load mode here */ /* +w doesn't do anything, it's just for testing */ memset(&req, 0, sizeof(req)); req.paracount = 0; req.is_ok = extcmode_default_requirechop; req.flag = 'w'; ModeTest = CmodeAdd(modinfo->handle, req, &EXTCMODE_TEST); /* +y doesn't do anything except that you can set/unset it with a * numeric parameter (1-100) */ memset(&req, 0, sizeof(req)); req.paracount = 1; req.is_ok = modey_is_ok; req.put_param = modey_put_param; req.get_param = modey_get_param; req.conv_param = modey_conv_param; req.free_param = modey_free_param; req.sjoin_check = modey_sjoin_check; req.dup_struct = modey_dup_struct; req.flag = 'y'; ModeTest2 = CmodeAdd(modinfo->handle, req, &EXTCMODE_TEST2); return MOD_SUCCESS; }
DLLFUNC int MOD_INIT(nocodeschmode)(ModuleInfo *modinfo) { CmodeInfo ModeNC; #ifndef STATIC_LINKING ModuleSetOptions(modinfo->handle, MOD_OPT_PERM); #endif memset(&ModeNoCodes, 0, sizeof ModeNoCodes); ModeNC.paracount = 0; ModeNC.is_ok = extcmode_default_requirechop; ModeNC.flag = FLAG_NOCODES; ModeNoCodes = CmodeAdd(modinfo->handle, ModeNC, &MODE_NOCODES); #ifndef STATIC_LINKING if (ModuleGetError(modinfo->handle) != MODERR_NOERROR || !ModeNoCodes) { config_error("Error adding channel mode +%c when loading module %s: %s", ModeNC.flag,MOD_HEADER(nocodeschmode).name,ModuleGetErrorStr(modinfo->handle)); } #else if (!ModeNoCodes) { config_error("Error adding channel mode +%c when loading module %s:", ModeNC.flag,MOD_HEADER(nocodeschmode).name); } #endif HookAddPCharEx(modinfo->handle, HOOKTYPE_CHANMSG, h_nocodes_chanmsg); return MOD_SUCCESS; }
DLLFUNC int MOD_INIT(m_restrictcolors)(ModuleInfo *modinfo) { ModuleSetOptions(modinfo->handle, MOD_OPT_PERM); CmodeInfo req; ircd_log(LOG_ERROR, "debug: mod_init called from m_restrictcolors"); sendto_realops("loading m_restrictcolors"); memset(&req, 0, sizeof(req)); req.paracount = 0; req.is_ok = extcmode_default_requirehalfop; req.flag = 'W'; ModeRcolors = CmodeAdd(modinfo->handle, req, &RESTRICT_COLORS); bcopy(modinfo,&RestrictColorsModInfo,modinfo->size); CheckMsg = HookAddPCharEx(RestrictColorsModInfo.handle, HOOKTYPE_CHANMSG, restrictcolors_checkmsg); return MOD_SUCCESS; }
DLLFUNC int MOD_INIT(m_nocaps)(ModuleInfo *modinfo) { ModuleSetOptions(modinfo->handle, MOD_OPT_PERM); CmodeInfo req; ircd_log(LOG_ERROR, "debug: mod_init called from m_nocaps"); sendto_realops("loading m_nocaps"); memset(&req, 0, sizeof(req)); req.paracount = 0; req.is_ok = extcmode_default_requirehalfop; req.flag = 'd'; ModeBlock = CmodeAdd(modinfo->handle, req, &NOCAPS_BLOCK); bcopy(modinfo,&NoCapsModInfo,modinfo->size); CheckMsg = HookAddPCharEx(NoCapsModInfo.handle, HOOKTYPE_CHANMSG, nocaps_checkmsg); return MOD_SUCCESS; }
DLLFUNC int MOD_INIT(m_banlink)(ModuleInfo *modinfo) { CmodeInfo req; ModuleSetOptions(modinfo->handle, MOD_OPT_PERM); memset(&req, 0, sizeof(req)); req.paracount = 1; req.is_ok = mode_is_ok; req.put_param = mode_put_param; req.get_param = mode_get_param; req.free_param = mode_free_param; req.sjoin_check = mode_sjoin_check; req.conv_param = mode_conv_param; req.dup_struct = mode_dup_struct; req.flag = 'B'; ModeBANLINK = CmodeAdd(modinfo->handle, req, &EXTCMODE_BANLINK); HookJoin = HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, cb_join); return MOD_SUCCESS; }