bool Matches(User *u)
{
- if (InspIRCd::Match(u->GetFullHost(), matchtext) || InspIRCd::Match(u->GetFullRealHost(), matchtext))
+ // E: overrides shun
+ if (u->exempt)
+ return false;
+
+ if (InspIRCd::Match(u->GetFullHost(), matchtext) || InspIRCd::Match(u->GetFullRealHost(), matchtext) || InspIRCd::Match(u->nick+"!"+u->ident+"@"+u->GetIPString(), matchtext))
return true;
return false;
/* 'time' is a human-readable timestring, like 2d3h2s. */
std::string target = parameters[0];
+
+ User *find = ServerInstance->FindNick(target.c_str());
+ if (find)
+ target = std::string("*!*@") + find->GetIPString();
if (parameters.size() == 1)
{
}
else if (parameters.size() >= 2)
{
- User* find = ServerInstance->FindNick(target.c_str());
- if (find)
- target = std::string("*!*@") + find->GetIPString();
-
// Adding - XXX todo make this respect <insane> tag perhaps..
long duration;
std::string expr;
Implementation eventlist[] = { I_OnStats, I_OnPreCommand, I_OnUserConnect, I_OnRehash };
ServerInstance->Modules->Attach(eventlist, this, 4);
- OnRehash(NULL, "");
+ OnRehash(NULL);
}
virtual ~ModuleShun()
return 1;
}
- virtual void OnRehash(User* user, const std::string ¶meter)
+ virtual void OnRehash(User* user)
{
ConfigReader MyConf(ServerInstance);
std::string cmds = MyConf.ReadValue("shun", "enabledcommands", 0);