static int SILENCE_ALL = 0x0020; /* a all, (pcint) */
static int SILENCE_EXCLUDE = 0x0040; /* x exclude this pattern */
+enum
+{
+ // From ircu?
+ RPL_SILELIST = 271,
+ RPL_ENDOFSILELIST = 272,
+
+ // InspIRCd-specific.
+ RPL_UNSILENCED = 950,
+ RPL_SILENCED = 951,
+ ERR_NOTSILENCED = 952
+};
class CommandSVSSilence : public Command
{
TRANSLATE3(TR_NICK, TR_TEXT, TR_TEXT);
}
- CmdResult Handle (const std::vector<std::string>& parameters, User *user)
+ CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
{
/*
* XXX: thought occurs to me
return CMD_SUCCESS;
}
- RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
+ RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
{
return ROUTE_OPT_UCAST(parameters[0]);
}
syntax = "{[+|-]<mask> <p|c|i|n|t|a|x>}";
}
- CmdResult Handle (const std::vector<std::string>& parameters, User *user)
+ CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
{
if (!parameters.size())
{
for (silencelist::const_iterator c = sl->begin(); c != sl->end(); c++)
{
std::string decomppattern = DecompPattern(c->second);
- user->WriteNumeric(271, user->nick, c->first, decomppattern);
+ user->WriteNumeric(RPL_SILELIST, user->nick, c->first, decomppattern);
}
}
- user->WriteNumeric(272, "End of Silence List");
+ user->WriteNumeric(RPL_ENDOFSILELIST, "End of Silence List");
return CMD_SUCCESS;
}
if ((irc::equals(listitem, mask)) && (i->second == pattern))
{
sl->erase(i);
- user->WriteNumeric(950, user->nick, InspIRCd::Format("Removed %s %s from silence list", mask.c_str(), decomppattern.c_str()));
+ user->WriteNumeric(RPL_UNSILENCED, user->nick, InspIRCd::Format("Removed %s %s from silence list", mask.c_str(), decomppattern.c_str()));
if (!sl->size())
{
ext.unset(user);
}
}
}
- user->WriteNumeric(952, user->nick, InspIRCd::Format("%s %s does not exist on your silence list", mask.c_str(), decomppattern.c_str()));
+ user->WriteNumeric(ERR_NOTSILENCED, user->nick, InspIRCd::Format("%s %s does not exist on your silence list", mask.c_str(), decomppattern.c_str()));
}
else if (action == '+')
{
}
if (sl->size() > maxsilence)
{
- user->WriteNumeric(952, user->nick, "Your silence list is full");
+ user->WriteNumeric(ERR_NOTSILENCED, user->nick, "Your silence list is full");
return CMD_FAILURE;
}
const std::string& listitem = n->first;
if ((irc::equals(listitem, mask)) && (n->second == pattern))
{
- user->WriteNumeric(952, user->nick, InspIRCd::Format("%s %s is already on your silence list", mask.c_str(), decomppattern.c_str()));
+ user->WriteNumeric(ERR_NOTSILENCED, user->nick, InspIRCd::Format("%s %s is already on your silence list", mask.c_str(), decomppattern.c_str()));
return CMD_FAILURE;
}
}
{
sl->push_back(silenceset(mask,pattern));
}
- user->WriteNumeric(951, user->nick, InspIRCd::Format("Added %s %s to silence list", mask.c_str(), decomppattern.c_str()));
+ user->WriteNumeric(RPL_SILENCED, user->nick, InspIRCd::Format("Added %s %s to silence list", mask.c_str(), decomppattern.c_str()));
return CMD_SUCCESS;
}
}
}
}
- ModResult OnUserPreMessage(User* user, void* dest, 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 (target_type == TYPE_USER && IS_LOCAL(((User*)dest)))
+ if (target.type == MessageTarget::TYPE_USER && IS_LOCAL(target.Get<User>()))
{
- return MatchPattern((User*)dest, user, ((msgtype == MSG_PRIVMSG) ? SILENCE_PRIVATE : SILENCE_NOTICE));
+ return MatchPattern(target.Get<User>(), user, ((details.type == MSG_PRIVMSG) ? SILENCE_PRIVATE : SILENCE_NOTICE));
}
- else if (target_type == TYPE_CHANNEL)
+ else if (target.type == MessageTarget::TYPE_CHANNEL)
{
- Channel* chan = (Channel*)dest;
- BuildExemptList(msgtype, chan, user, exempt_list);
+ Channel* chan = target.Get<Channel>();
+ BuildExemptList(details.type, chan, user, details.exemptions);
}
return MOD_RES_PASSTHRU;
}