X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_exemptchanops.cpp;h=ba5b7696732abb2a31bf6bfce453a2b498ff997a;hb=80e81e3b81b779901fd9d67f8ae030ee30c0bcec;hp=7a40063fc824014e6cfc225bebec88f50df267a5;hpb=8e734ee8a1a562be6bfde7fff7d7c8446179c039;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_exemptchanops.cpp b/src/modules/m_exemptchanops.cpp index 7a40063fc..ba5b76967 100644 --- a/src/modules/m_exemptchanops.cpp +++ b/src/modules/m_exemptchanops.cpp @@ -1,6 +1,10 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2013-2015 Attila Molnar + * Copyright (C) 2013, 2017-2020 Sadie Powell + * Copyright (C) 2012, 2019 Robby + * Copyright (C) 2010 Craig Edwards * Copyright (C) 2009-2010 Daniel De Graaf * * This file is part of InspIRCd. InspIRCd is free software: you can @@ -21,14 +25,19 @@ #include "listmode.h" #include "modules/exemption.h" -/** Handles channel mode +X - */ +enum +{ + RPL_ENDOFEXEMPTIONLIST = 953, + RPL_EXEMPTIONLIST = 954 +}; + class ExemptChanOps : public ListModeBase { public: ExemptChanOps(Module* Creator) - : ListModeBase(Creator, "exemptchanops", 'X', "End of channel exemptchanops list", 954, 953, false) + : ListModeBase(Creator, "exemptchanops", 'X', "End of channel exemptchanops list", RPL_EXEMPTIONLIST, RPL_ENDOFEXEMPTIONLIST, false) { + syntax = ":"; } static PrefixMode* FindMode(const std::string& mode) @@ -48,7 +57,7 @@ class ExemptChanOps : public ListModeBase return false; restriction.assign(entry, 0, colon); - prefix.assign(entry, colon + 1); + prefix.assign(entry, colon + 1, std::string::npos); return true; } @@ -77,7 +86,7 @@ class ExemptChanOps : public ListModeBase std::string prefix; if (!ParseEntry(word, restriction, prefix)) { - user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word, "Invalid exemptchanops entry, format is :")); + user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word)); return false; } @@ -89,13 +98,13 @@ class ExemptChanOps : public ListModeBase if (!ServerInstance->Modes->FindMode(restriction, MODETYPE_CHANNEL)) { - user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word, "Unknown restriction")); + user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word, "Unknown restriction.")); return false; } if (prefix != "*" && !FindMode(prefix)) { - user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word, "Unknown prefix mode")); + user->WriteNumeric(Numerics::InvalidModeParameter(chan, this, word, "Unknown prefix mode.")); return false; } @@ -153,7 +162,7 @@ class ModuleExemptChanOps : public Module Version GetVersion() CXX11_OVERRIDE { - return Version("Provides the ability to allow channel operators to be exempt from certain modes", VF_VENDOR); + return Version("Adds channel mode X (exemptchanops) which allows channel operators to grant exemptions to various channel-level restrictions.", VF_VENDOR); } void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE