public:
std::string matchtext;
- Shun(time_t s_time, long d, std::string src, std::string re, std::string shunmask)
+ Shun(time_t s_time, long d, const std::string& src, const std::string& re, const std::string& shunmask)
: XLine(s_time, d, src, re, "SHUN")
+ , matchtext(shunmask)
{
- this->matchtext = shunmask;
}
~Shun()
std::string target = parameters[0];
- User *find = ServerInstance->FindNick(target.c_str());
- if (find)
+ User *find = ServerInstance->FindNick(target);
+ if ((find) && (find->registered == REG_ALL))
target = std::string("*!*@") + find->GetIPString();
if (parameters.size() == 1)
RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
{
+ if (IS_LOCAL(user))
+ return ROUTE_LOCALONLY; // spanningtree will send ADDLINE
+
return ROUTE_BROADCAST;
}
};
public:
ModuleShun() : cmd(this)
+ {
+ }
+
+ void init()
{
ServerInstance->XLines->RegisterFactory(&f);
- ServerInstance->AddCommand(&cmd);
+ ServerInstance->Modules->AddService(cmd);
Implementation eventlist[] = { I_OnStats, I_OnPreCommand, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, 3);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
OnRehash(NULL);
}