X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_cban.cpp;h=472b5ad09d77f54687e4787e26819e15264652b5;hb=dd501fba3fd7e5806186b79fa1d7c2b464884e69;hp=10948caf7be197c79d43e8c17e20465053a2956a;hpb=3039e0663f7e45a45e9574a6aa7463bbe77e849f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_cban.cpp b/src/modules/m_cban.cpp index 10948caf7..472b5ad09 100644 --- a/src/modules/m_cban.cpp +++ b/src/modules/m_cban.cpp @@ -88,25 +88,25 @@ class CommandCBan : public Command TRANSLATE4(TR_TEXT,TR_TEXT,TR_TEXT,TR_END); } - CmdResult Handle(const char* const* parameters, int pcnt, User *user) + CmdResult Handle(const std::vector ¶meters, User *user) { /* syntax: CBAN #channel time :reason goes here */ /* 'time' is a human-readable timestring, like 2d3h2s. */ - if(pcnt == 1) + if (parameters.size() == 1) { - if (ServerInstance->XLines->DelLine(parameters[0], "CBAN", user)) + if (ServerInstance->XLines->DelLine(parameters[0].c_str(), "CBAN", user)) { - ServerInstance->SNO->WriteToSnoMask('x',"%s Removed CBan on %s.",user->nick,parameters[0]); + ServerInstance->SNO->WriteToSnoMask('x',"%s Removed CBan on %s.",user->nick.c_str(),parameters[0].c_str()); } else { - user->WriteServ("NOTICE %s :*** CBan %s not found in list, try /stats C.",user->nick,parameters[0]); + user->WriteServ("NOTICE %s :*** CBan %s not found in list, try /stats C.",user->nick.c_str(),parameters[0].c_str()); } return CMD_SUCCESS; } - else if (pcnt >= 2) + else if (parameters.size() >= 2) { // Adding - XXX todo make this respect tag perhaps.. long duration = ServerInstance->Duration(parameters[1]); @@ -114,7 +114,7 @@ class CommandCBan : public Command try { - r = new CBan(ServerInstance, ServerInstance->Time(), duration, user->nick, parameters[2], parameters[0]); + r = new CBan(ServerInstance, ServerInstance->Time(), duration, user->nick.c_str(), parameters[2].c_str(), parameters[0].c_str()); } catch (...) { @@ -127,12 +127,12 @@ class CommandCBan : public Command { if (!duration) { - ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent CBan for %s.", user->nick, parameters[0]); + ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent CBan for %s.", user->nick.c_str(), parameters[0].c_str()); } else { time_t c_requires_crap = duration + ServerInstance->Time(); - ServerInstance->SNO->WriteToSnoMask('x', "%s added timed CBan for %s, expires on %s", user->nick, parameters[0], + ServerInstance->SNO->WriteToSnoMask('x', "%s added timed CBan for %s, expires on %s", user->nick.c_str(), parameters[0].c_str(), ServerInstance->TimeString(c_requires_crap).c_str()); } @@ -141,7 +141,7 @@ class CommandCBan : public Command else { delete r; - user->WriteServ("NOTICE %s :*** CBan for %s already exists", user->nick, parameters[0]); + user->WriteServ("NOTICE %s :*** CBan for %s already exists", user->nick.c_str(), parameters[0].c_str()); } } } @@ -169,12 +169,17 @@ class ModuleCBan : public Module virtual ~ModuleCBan() { + ServerInstance->XLines->DelAll("CBAN"); ServerInstance->XLines->UnregisterFactory(f); } - - virtual int OnStats(char symbol, User* user, string_list &results) + + virtual int OnStats(char symbol, User* user, string_list &out) { - return 0; + if (symbol != 'C') + return 0; + + ServerInstance->XLines->InvokeStats("CBAN", 210, user, out); + return 1; } virtual int OnUserPreJoin(User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven) @@ -184,8 +189,8 @@ class ModuleCBan : public Module if (rl) { // Channel is banned. - user->WriteServ( "384 %s %s :Cannot join channel, CBANed (%s)", user->nick, cname, rl->reason); - ServerInstance->SNO->WriteToSnoMask('A', "%s tried to join %s which is CBANed (%s)", user->nick, cname, rl->reason); + user->WriteServ( "384 %s %s :Cannot join channel, CBANed (%s)", user->nick.c_str(), cname, rl->reason); + ServerInstance->SNO->WriteToSnoMask('A', "%s tried to join %s which is CBANed (%s)", user->nick.c_str(), cname, rl->reason); return 1; } @@ -194,7 +199,7 @@ class ModuleCBan : public Module virtual Version GetVersion() { - return Version(1, 2, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION); + return Version("$Id$", VF_COMMON | VF_VENDOR, API_VERSION); } };