X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_cban.cpp;h=4cf18264c862da780962de79b9381f7020545a4e;hb=1bfa48143c04504181d1b194af151fae2dac1eb1;hp=bf4fa4e6de64f9cba1cd6af171d41522c03c2781;hpb=24731c63b6320be22f7b3220236271fa7476b975;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_cban.cpp b/src/modules/m_cban.cpp index bf4fa4e6d..4cf18264c 100644 --- a/src/modules/m_cban.cpp +++ b/src/modules/m_cban.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * InspIRCd: (C) 2002-2010 InspIRCd Development Team * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see @@ -23,8 +23,8 @@ class CBan : public XLine public: irc::string matchtext; - CBan(InspIRCd* Instance, time_t s_time, long d, std::string src, std::string re, std::string ch) - : XLine(Instance, s_time, d, src, re, "CBAN") + CBan(time_t s_time, long d, std::string src, std::string re, std::string ch) + : XLine(s_time, d, src, re, "CBAN") { this->matchtext = ch.c_str(); } @@ -50,7 +50,6 @@ public: { ServerInstance->SNO->WriteToSnoMask('x',"Removing expired CBan %s (set by %s %ld seconds ago)", this->matchtext.c_str(), this->source.c_str(), (long int)(ServerInstance->Time() - this->set_time)); - ServerInstance->PI->SendSNONotice("x", "Removing expired CBan " + assign(this->matchtext) + " (set by " + this->source + " " + ConvToStr(ServerInstance->Time() - this->set_time) + " seconds ago)"); } const char* Displayable() @@ -64,13 +63,13 @@ public: class CBanFactory : public XLineFactory { public: - CBanFactory(InspIRCd* Instance) : XLineFactory(Instance, "CBAN") { } + CBanFactory() : XLineFactory("CBAN") { } /** Generate a shun */ XLine* Generate(time_t set_time, long duration, std::string source, std::string reason, std::string xline_specific_mask) { - return new CBan(ServerInstance, set_time, duration, source, reason, xline_specific_mask); + return new CBan(set_time, duration, source, reason, xline_specific_mask); } bool AutoApplyToUserList(XLine *x) @@ -84,9 +83,9 @@ class CBanFactory : public XLineFactory class CommandCBan : public Command { public: - CommandCBan(InspIRCd* Me, Module* Creator) : Command(Me, Creator, "CBAN", "o", 1, 3) + CommandCBan(Module* Creator) : Command(Creator, "CBAN", 1, 3) { - this->syntax = " [ :]"; + flags_needed = 'o'; this->syntax = " [ :]"; TRANSLATE4(TR_TEXT,TR_TEXT,TR_TEXT,TR_END); } @@ -99,8 +98,7 @@ class CommandCBan : public Command { if (ServerInstance->XLines->DelLine(parameters[0].c_str(), "CBAN", user)) { - ServerInstance->SNO->WriteToSnoMask('x',"%s removed CBan on %s.",user->nick.c_str(),parameters[0].c_str()); - ServerInstance->PI->SendSNONotice("x", user->nick + " removed CBan on " + parameters[0]); + ServerInstance->SNO->WriteGlobalSno('x', "%s removed CBan on %s.",user->nick.c_str(),parameters[0].c_str()); } else { @@ -118,7 +116,7 @@ class CommandCBan : public Command try { - r = new CBan(ServerInstance, ServerInstance->Time(), duration, user->nick.c_str(), reason, parameters[0].c_str()); + r = new CBan(ServerInstance->Time(), duration, user->nick.c_str(), reason, parameters[0].c_str()); } catch (...) { @@ -131,14 +129,12 @@ class CommandCBan : public Command { if (!duration) { - ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent CBan for %s: %s", user->nick.c_str(), parameters[0].c_str(), reason); - ServerInstance->PI->SendSNONotice("x", user->nick + " added permenant CBan for " + parameters[0] + ": " + std::string(reason)); + ServerInstance->SNO->WriteGlobalSno('x', "%s added permanent CBan for %s: %s", user->nick.c_str(), parameters[0].c_str(), reason); } else { time_t c_requires_crap = duration + ServerInstance->Time(); - ServerInstance->SNO->WriteToSnoMask('x', "%s added timed CBan for %s, expires on %s: %s", user->nick.c_str(), parameters[0].c_str(), ServerInstance->TimeString(c_requires_crap).c_str(), reason); - ServerInstance->PI->SendSNONotice("x", user->nick + " added timed CBan for " + parameters[0] + ", expires on " + ServerInstance->TimeString(c_requires_crap) + ": " + std::string(reason)); + ServerInstance->SNO->WriteGlobalSno('x', "%s added timed CBan for %s, expires on %s: %s", user->nick.c_str(), parameters[0].c_str(), ServerInstance->TimeString(c_requires_crap).c_str(), reason); } ServerInstance->XLines->ApplyLines(); @@ -153,6 +149,11 @@ class CommandCBan : public Command return CMD_FAILURE; } + + RouteDescriptor GetRouting(User* user, const std::vector& parameters) + { + return ROUTE_BROADCAST; + } }; class ModuleCBan : public Module @@ -161,7 +162,7 @@ class ModuleCBan : public Module CBanFactory f; public: - ModuleCBan(InspIRCd* Me) : Module(Me), mycommand(Me, this), f(Me) + ModuleCBan() : mycommand(this) { ServerInstance->XLines->RegisterFactory(&f); @@ -176,16 +177,16 @@ class ModuleCBan : public Module ServerInstance->XLines->UnregisterFactory(&f); } - virtual int OnStats(char symbol, User* user, string_list &out) + virtual ModResult OnStats(char symbol, User* user, string_list &out) { if (symbol != 'C') - return 0; + return MOD_RES_PASSTHRU; ServerInstance->XLines->InvokeStats("CBAN", 210, user, out); - return 1; + return MOD_RES_DENY; } - virtual int OnUserPreJoin(User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven) + virtual ModResult OnUserPreJoin(User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven) { XLine *rl = ServerInstance->XLines->MatchesLine("CBAN", cname); @@ -196,15 +197,15 @@ class ModuleCBan : public Module ServerInstance->SNO->WriteToSnoMask('a', "%s tried to join %s which is CBANed (%s)", user->nick.c_str(), cname, rl->reason.c_str()); ServerInstance->PI->SendSNONotice("A", user->nick + " tried to join " + std::string(cname) + " which is CBANed (" + rl->reason + ")"); - return 1; + return MOD_RES_DENY; } - return 0; + return MOD_RES_PASSTHRU; } virtual Version GetVersion() { - return Version("$Id$", VF_COMMON | VF_VENDOR, API_VERSION); + return Version("Gives /cban, aka C:lines. Think Q:lines, for channels.", VF_COMMON | VF_VENDOR); } };