SimpleUserModeHandler myumode;
// Configuration variables:
- bool operoverride; // Operators can override callerid.
bool tracknick; // Allow ACCEPT entries to update with nick changes.
unsigned int notify_cooldown; // Seconds between notifications.
void On005Numeric(std::map<std::string, std::string>& tokens) CXX11_OVERRIDE
{
+ tokens["ACCEPT"] = ConvToStr(cmd.maxaccepts);
tokens["CALLERID"] = ConvToStr(myumode.GetModeChar());
}
- ModResult OnUserPreMessage(User* user, void* voiddest, int target_type, std::string& text, char status, CUList& exempt_list, MessageType msgtype) CXX11_OVERRIDE
+ ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) CXX11_OVERRIDE
{
- if (!IS_LOCAL(user) || target_type != TYPE_USER)
+ if (!IS_LOCAL(user) || target.type != MessageTarget::TYPE_USER)
return MOD_RES_PASSTHRU;
- User* dest = static_cast<User*>(voiddest);
+ User* dest = target.Get<User>();
if (!dest->IsModeSet(myumode) || (user == dest))
return MOD_RES_PASSTHRU;
- if (operoverride && user->IsOper())
+ if (user->HasPrivPermission("users/callerid-override"))
return MOD_RES_PASSTHRU;
callerid_data* dat = cmd.extInfo.get(dest, true);
{
ConfigTag* tag = ServerInstance->Config->ConfValue("callerid");
cmd.maxaccepts = tag->getInt("maxaccepts", 16);
- operoverride = tag->getBool("operoverride");
tracknick = tag->getBool("tracknick");
notify_cooldown = tag->getDuration("cooldown", 60);
}