#include "users.h"
#include "channels.h"
#include "modules.h"
-#include "helperfuncs.h"
+
#include "inspircd.h"
/* $ModDesc: Provides the SWHOIS command which allows setting of arbitary WHOIS lines */
-extern InspIRCd* ServerInstance;
+
class cmd_swhois : public command_t
{
- Server* Srv;
+
public:
- cmd_swhois(Server* server) : command_t("SWHOIS",'o',2)
+ cmd_swhois (InspIRCd* Instance) : command_t(Instance,"SWHOIS",'o',2)
{
- this->Srv = server;
this->source = "m_swhois.so";
syntax = "<nick> <swhois>";
}
- void Handle(const char** parameters, int pcnt, userrec* user)
+ CmdResult Handle(const char** parameters, int pcnt, userrec* user)
{
userrec* dest = ServerInstance->FindNick(parameters[0]);
if(dest)
{
// We already had it set...
- if (!Srv->IsUlined(user->server))
+ if (!ServerInstance->ULine(user->server))
// Ulines set SWHOISes silently
ServerInstance->WriteOpers("*** %s used SWHOIS to set %s's extra whois from '%s' to '%s'", user->nick, dest->nick, text->c_str(), line.c_str());
dest->Shrink("swhois");
DELETE(text);
}
- else if(!Srv->IsUlined(user->server))
+ else if(!ServerInstance->ULine(user->server))
{
// Ulines set SWHOISes silently
ServerInstance->WriteOpers("*** %s used SWHOIS to set %s's extra whois to '%s'", user->nick, dest->nick, line.c_str());
text = new std::string(line);
dest->Extend("swhois", text);
+
+ return CMD_SUCCESS;
}
+
+ return CMD_FAILURE;
}
};
class ModuleSWhois : public Module
{
cmd_swhois* mycommand;
- Server* Srv;
+
ConfigReader* Conf;
public:
- ModuleSWhois(Server* Me) : Module::Module(Me)
+ ModuleSWhois(InspIRCd* Me) : Module::Module(Me)
{
- Srv = Me;
- Conf = new ConfigReader();
- mycommand = new cmd_swhois(Srv);
- Srv->AddCommand(mycommand);
+
+ Conf = new ConfigReader(ServerInstance);
+ mycommand = new cmd_swhois(ServerInstance);
+ ServerInstance->AddCommand(mycommand);
}
void OnRehash(const std::string ¶meter)
{
DELETE(Conf);
- Conf = new ConfigReader();
+ Conf = new ConfigReader(ServerInstance);
}
void Implements(char* List)
{
}
- virtual Module * CreateModule(Server* Me)
+ virtual Module * CreateModule(InspIRCd* Me)
{
return new ModuleSWhois(Me);
}