void* old = get_raw(container);
if (old)
- this->free(old);
+ this->free(NULL, old);
callerid_data* dat = new callerid_data;
set_raw(container, dat);
return dat;
}
- void free(void* item) CXX11_OVERRIDE
+ void free(Extensible* container, void* item) CXX11_OVERRIDE
{
callerid_data* dat = static_cast<callerid_data*>(item);
* /accept nick1,nick2,nick3,*
* to add 3 nicks and then show your list
*/
- CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
{
if (CommandParser::LoopCall(user, this, parameters, 0))
return CMD_SUCCESS;
return (RemoveAccept(user, action.first) ? CMD_SUCCESS : CMD_FAILURE);
}
- RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+ RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
{
// There is a list in parameters[0] in two cases:
// Either when the source is remote, this happens because 2.0 servers send comma seperated uuid lists,
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["CALLERID"] = "g";
+ 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);
void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("callerid");
- cmd.maxaccepts = tag->getInt("maxaccepts", 16);
- operoverride = tag->getBool("operoverride");
+ cmd.maxaccepts = tag->getUInt("maxaccepts", 16);
tracknick = tag->getBool("tracknick");
notify_cooldown = tag->getDuration("cooldown", 60);
}