本文整理汇总了C++中chanserv::Channel::GetChannel方法的典型用法代码示例。如果您正苦于以下问题:C++ Channel::GetChannel方法的具体用法?C++ Channel::GetChannel怎么用?C++ Channel::GetChannel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类chanserv::Channel
的用法示例。
在下文中一共展示了Channel::GetChannel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnLog
void OnLog(Logger *logger) override
{
User *user = logger->GetUser();
ChanServ::Channel *channel = logger->GetCi();
Command *command = logger->GetCommand();
CommandSource *source = logger->GetSource();
if (logger->GetType() != LogType::COMMAND || user == nullptr || command == nullptr || channel == nullptr || !Me || !Me->IsSynced())
return;
Channel *c = channel->GetChannel();
for (LogSetting *log : channel->GetRefs<LogSetting *>())
{
/* wrong command */
if (log->GetServiceName() != command->GetName())
continue;
/* if a command name is given check the service and the command */
if (!log->GetCommandName().empty())
{
/* wrong service (only check if not a fantasy command, though) */
if (!source->c && log->GetCommandService() != source->service->nick)
continue;
if (!log->GetCommandName().equals_ci(source->GetCommand()))
continue;
}
const Anope::string &buffer = logger->GetMaskedMessage();
if (log->GetMethod().equals_ci("MEMO") && memoserv && channel->WhoSends() != NULL)
memoserv->Send(channel->WhoSends()->nick, channel->GetName(), buffer, true);
else if (source->c)
/* Sending a channel message or notice in response to a fantasy command */;
else if (log->GetMethod().equals_ci("MESSAGE") && c)
{
IRCD->SendPrivmsg(channel->WhoSends(), log->GetExtra() + c->name, "{0}", buffer);
#warning "fix idletimes"
//l->ci->WhoSends()->lastmsg = Anope::CurTime;
}
else if (log->GetMethod().equals_ci("NOTICE") && c)
IRCD->SendNotice(channel->WhoSends(), log->GetExtra() + c->name, "{0}", buffer);
}
}