CommandSwhois(Module* Creator) : Command(Creator,"SWHOIS", 2,2), swhois("swhois", Creator)
{
flags_needed = 'o'; syntax = "<nick> :<swhois>";
- ServerInstance->Extensions.Register(&swhois);
TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
{
User* dest = ServerInstance->FindNick(parameters[0]);
- if (!dest)
+ if ((!dest) || (IS_SERVER(dest))) // allow setting swhois using SWHOIS before reg
{
user->WriteNumeric(ERR_NOSUCHNICK, "%s %s :No such nick/channel", user->nick.c_str(), parameters[0].c_str());
return CMD_FAILURE;
public:
ModuleSWhois() : cmd(this)
{
- ServerInstance->AddCommand(&cmd);
- Implementation eventlist[] = { I_OnWhoisLine, I_OnPostCommand };
- ServerInstance->Modules->Attach(eventlist, this, 2);
+ }
+
+ void init()
+ {
+ ServerInstance->Modules->AddService(cmd);
+ ServerInstance->Modules->AddService(cmd.swhois);
+ Implementation eventlist[] = { I_OnWhoisLine, I_OnPostOper };
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
// :kenny.chatspike.net 320 Brain Azhrarn :is getting paid to play games.
return MOD_RES_PASSTHRU;
}
- void OnPostCommand(const std::string &command, const std::vector<std::string> ¶ms, LocalUser *user, CmdResult result, const std::string &original_line)
+ void OnPostOper(User* user, const std::string &opertype, const std::string &opername)
{
- if ((command != "OPER") || (result != CMD_SUCCESS))
+ if (!IS_LOCAL(user))
return;
- ConfigReader Conf;
std::string swhois = user->oper->getConfig("swhois");