X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_opermotd.cpp;h=e38d0b82761f9120607d7e9daae8a5ea1dc03df6;hb=fea1a27cb96a114f698eedcf90401b78406108fb;hp=2c4a4492554410966a039648ab62da4026138ee3;hpb=0739e7c099618eb1848f5a72ec4d896095033a76;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_opermotd.cpp b/src/modules/m_opermotd.cpp index 2c4a44925..e38d0b827 100644 --- a/src/modules/m_opermotd.cpp +++ b/src/modules/m_opermotd.cpp @@ -10,62 +10,70 @@ 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) { if(!opermotd->FileSize()) { - Srv->SendServ(user->fd,std::string("425 ") + user->nick + std::string(" :OPERMOTD file is missing")); + user->WriteServ(std::string("425 ") + user->nick + std::string(" :OPERMOTD file is missing")); return; } - Srv->SendServ(user->fd,std::string("375 ") + user->nick + std::string(" :- IRC Operators Message of the Day")); + user->WriteServ(std::string("375 ") + user->nick + std::string(" :- IRC Operators Message of the Day")); for(int i=0; i != opermotd->FileSize(); i++) { - Srv->SendServ(user->fd,std::string("372 ") + user->nick + std::string(" :- ") + opermotd->GetLine(i)); + user->WriteServ(std::string("372 ") + user->nick + std::string(" :- ") + opermotd->GetLine(i)); } - Srv->SendServ(user->fd,std::string("376 ") + user->nick + std::string(" :- End of OPERMOTD")); + user->WriteServ(std::string("376 ") + user->nick + std::string(" :- End of OPERMOTD")); } -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"; + syntax = "[]"; + } + + 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 +81,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(std::string parameter) + virtual void OnRehash(const std::string ¶meter) { LoadOperMOTD(); } @@ -96,9 +109,9 @@ class ModuleOpermotdFactory : public ModuleFactory { } - virtual Module* CreateModule() + virtual Module* CreateModule(Server* Me) { - return new ModuleOpermotd; + return new ModuleOpermotd(Me); } };