X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_opermotd.cpp;h=b4a85e8890270efb39e65c5411361a708c200b74;hb=2330fc9ddd48c939e894e7e37e9bb2e62eafc38d;hp=67c066641fe26146594fcee7e25001460d0bb673;hpb=9dd49a391f0602586b85cc0b6dc54fc0d50a67d2;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_opermotd.cpp b/src/modules/m_opermotd.cpp index 67c066641..b4a85e889 100644 --- a/src/modules/m_opermotd.cpp +++ b/src/modules/m_opermotd.cpp @@ -10,21 +10,18 @@ using namespace std; /* $ModDesc: Shows a message to opers after oper-up, adds /opermotd */ -FileReader* opermotd; -Server* Srv; - -void do_opermotd(char** parameters, int pcnt, userrec* user); +static FileReader* opermotd; +static Server* Srv; void LoadOperMOTD() { - ConfigReader* conf = new ConfigReader; std::string filename; filename = conf->ReadValue("opermotd","file",0); opermotd->LoadFile(filename); - + DELETE(conf); } void ShowOperMOTD(userrec* user) @@ -46,26 +43,36 @@ void ShowOperMOTD(userrec* user) } -void do_opermotd(char** parameters, int pcnt, userrec* user) +class cmd_opermotd : public command_t { - ShowOperMOTD(user); -} + public: + cmd_opermotd () : command_t("OPERMOTD", 'o', 0) + { + this->source = "m_opermotd.so"; + } + + void Handle (const char** parameters, int pcnt, userrec* user) + { + ShowOperMOTD(user); + } +}; class ModuleOpermotd : public Module { + cmd_opermotd* mycommand; public: - ModuleOpermotd() + ModuleOpermotd(Server* Me) + : Module::Module(Me) { - Srv = new Server; - - Srv->AddCommand("OPERMOTD",do_opermotd,'o',0,"m_opermotd.so"); + Srv = Me; + mycommand = new cmd_opermotd(); + Srv->AddCommand(mycommand); opermotd = new FileReader(); LoadOperMOTD(); } virtual ~ModuleOpermotd() { - delete Srv; } virtual Version GetVersion() @@ -73,12 +80,17 @@ class ModuleOpermotd : public Module return Version(1,0,0,1,VF_VENDOR); } - virtual void OnOper(userrec* user, std::string opertype) + void Implements(char* List) + { + List[I_OnRehash] = List[I_OnOper] = 1; + } + + virtual void OnOper(userrec* user, const std::string &opertype) { ShowOperMOTD(user); } - virtual void OnRehash() + virtual void OnRehash(const std::string ¶meter) { LoadOperMOTD(); } @@ -96,9 +108,9 @@ class ModuleOpermotdFactory : public ModuleFactory { } - virtual Module* CreateModule() + virtual Module* CreateModule(Server* Me) { - return new ModuleOpermotd; + return new ModuleOpermotd(Me); } };