这篇教程C++ FOREACH_MOD函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中FOREACH_MOD函数的典型用法代码示例。如果您正苦于以下问题:C++ FOREACH_MOD函数的具体用法?C++ FOREACH_MOD怎么用?C++ FOREACH_MOD使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了FOREACH_MOD函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: FOREACH_MODCmdResult cmd_rehash::Handle (const char** parameters, int pcnt, userrec *user){ user->WriteServ("382 %s %s :Rehashing",user->nick,ServerConfig::CleanFilename(ServerInstance->ConfigFileName)); std::string parameter; std::string old_disabled = ServerInstance->Config->DisabledCommands; if (pcnt) { parameter = parameters[0]; } else { ServerInstance->WriteOpers("*** %s is rehashing config file %s",user->nick,ServerConfig::CleanFilename(ServerInstance->ConfigFileName)); ServerInstance->CloseLog(); ServerInstance->OpenLog(ServerInstance->Config->argv, ServerInstance->Config->argc); ServerInstance->RehashUsersAndChans(); FOREACH_MOD(I_OnGarbageCollect, OnGarbageCollect()); ServerInstance->Config->Read(false,user); ServerInstance->Res->Rehash(); ServerInstance->ResetMaxBans(); } if (old_disabled != ServerInstance->Config->DisabledCommands) InitializeDisabledCommands(ServerInstance->Config->DisabledCommands, ServerInstance); FOREACH_MOD(I_OnRehash,OnRehash(user, parameter)); ServerInstance->BuildISupport(); return CMD_SUCCESS;}
开发者ID:TuSuNaMi,项目名称:ircd-sakura,代码行数:29,
示例2: Tick void Tick(time_t) { if (!Config->CSExpire || noexpire || readonly) return; for (registered_channel_map::const_iterator it = RegisteredChannelList.begin(), it_end = RegisteredChannelList.end(); it != it_end; ) { ChannelInfo *ci = it->second; ++it; bool expire = false; if (!ci->c && Config->CSExpire && Anope::CurTime - ci->last_used >= Config->CSExpire) expire = true; if (ci->HasFlag(CI_NO_EXPIRE)) expire = false; FOREACH_MOD(I_OnPreChanExpire, OnPreChanExpire(ci, expire)); if (expire) { Anope::string extra; if (ci->HasFlag(CI_SUSPENDED)) extra = "suspended "; Log(LOG_NORMAL, "chanserv/expire") << "Expiring " << extra << "channel " << ci->name << " (founder: " << (ci->GetFounder() ? ci->GetFounder()->display : "(none)") << ")"; FOREACH_MOD(I_OnChanExpire, OnChanExpire(ci)); delete ci; } } }
开发者ID:xxgrunge,项目名称:anope196,代码行数:32,
示例3: FOREACH_MODbool TreeSocket::Away(const std::string &prefix, parameterlist ¶ms){ User* u = ServerInstance->FindNick(prefix); if ((!u) || (IS_SERVER(u))) return true; if (params.size()) { FOREACH_MOD(I_OnSetAway, OnSetAway(u, params[params.size() - 1])); if (params.size() > 1) u->awaytime = atoi(params[0].c_str()); else u->awaytime = ServerInstance->Time(); u->awaymsg = params[params.size() - 1]; params[params.size() - 1] = ":" + params[params.size() - 1]; } else { FOREACH_MOD(I_OnSetAway, OnSetAway(u, "")); u->awaymsg.clear(); } Utils->DoOneToAllButSender(prefix,"AWAY",params,u->server); return true;}
开发者ID:Shawn-Smith,项目名称:InspIRCd,代码行数:26,
示例4: DoMsg ModResult DoMsg(User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list, bool privmsg) { if (!IS_LOCAL(user) || target_type != TYPE_CHANNEL || status) return MOD_RES_PASSTHRU; Channel* chan = static_cast<Channel*>(dest); ModResult res = ServerInstance->OnCheckExemption(user,chan,"opmoderated"); if (res == MOD_RES_ALLOW) return MOD_RES_PASSTHRU; if (!chan->GetExtBanStatus(user, 'u').check(!chan->IsModeSet(&mh)) && chan->GetPrefixValue(user) < VOICE_VALUE) { FOREACH_MOD(I_OnText,OnText(user,chan,TYPE_CHANNEL,text,status,exempt_list)); chan->WriteAllExcept(user, false, '@', exempt_list, "%s @%s :%s", privmsg ? "PRIVMSG" : "NOTICE", chan->name.c_str(), text.c_str()); if (privmsg) { FOREACH_MOD(I_OnUserMessage,OnUserMessage(user,chan,TYPE_CHANNEL,text,'@',exempt_list)); } else FOREACH_MOD(I_OnUserNotice,OnUserNotice(user,chan,TYPE_CHANNEL,text,'@',exempt_list)); return MOD_RES_DENY; } return MOD_RES_PASSTHRU; }
开发者ID:inspircd,项目名称:inspircd-extras,代码行数:26,
示例5: FOREACH_MODCmdResult cmd_zline::Handle (const char** parameters, int pcnt, userrec *user){ if (pcnt >= 3) { if (strchr(parameters[0],'@') || strchr(parameters[0],'!')) { user->WriteServ("NOTICE %s :*** You cannot include a username or nickname in a zline, a zline must ban only an IP mask",user->nick); return CMD_FAILURE; } if (ServerInstance->IPMatchesEveryone(parameters[0],user)) return CMD_FAILURE; long duration = ServerInstance->Duration(parameters[1]); if (ServerInstance->XLines->add_zline(duration,user->nick,parameters[2],parameters[0])) { int to_apply = APPLY_ZLINES; FOREACH_MOD(I_OnAddZLine,OnAddZLine(duration, user, parameters[2], parameters[0])); if (!duration) { to_apply |= APPLY_PERM_ONLY; ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent Z-line for %s.",user->nick,parameters[0]); } else { time_t c_requires_crap = duration + ServerInstance->Time(); ServerInstance->SNO->WriteToSnoMask('x',"%s added timed Z-line for %s, expires on %s",user->nick,parameters[0], ServerInstance->TimeString(c_requires_crap).c_str()); } ServerInstance->XLines->apply_lines(to_apply); } else { user->WriteServ("NOTICE %s :*** Z-Line for %s already exists",user->nick,parameters[0]); } } else { if (ServerInstance->XLines->del_zline(parameters[0])) { FOREACH_MOD(I_OnDelZLine,OnDelZLine(user, parameters[0])); ServerInstance->SNO->WriteToSnoMask('x',"%s Removed Z-line on %s.",user->nick,parameters[0]); } else { user->WriteServ("NOTICE %s :*** Z-Line %s not found in list, try /stats Z.",user->nick,parameters[0]); return CMD_FAILURE; } } return CMD_SUCCESS;}
开发者ID:TuSuNaMi,项目名称:ircd-sakura,代码行数:53,
示例6: FOREACH_MODvoid UserManager::QuitUser(User* user, const std::string& quitreason, const std::string* operreason){ if (user->quitting) { ServerInstance->Logs->Log("USERS", LOG_DEFAULT, "ERROR: Tried to quit quitting user: " + user->nick); return; } if (IS_SERVER(user)) { ServerInstance->Logs->Log("USERS", LOG_DEFAULT, "ERROR: Tried to quit server user: " + user->nick); return; } user->quitting = true; ServerInstance->Logs->Log("USERS", LOG_DEBUG, "QuitUser: %s=%s '%s'", user->uuid.c_str(), user->nick.c_str(), quitreason.c_str()); user->Write("ERROR :Closing link: (%[email C++ FORMAT函数代码示例 C++ FOPEN函数代码示例
|