X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_disable.cpp;h=6ba5243c92962cfd9021db4cf05839f7beacac40;hb=bde0e7e84668df48afaffda7a52eddc0aca543d3;hp=203f9ee649407639f15b42947f03bd5a113402c2;hpb=4047a143fc1d16350db70c94b9ea77d79de05714;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_disable.cpp b/src/modules/m_disable.cpp index 203f9ee64..6ba5243c9 100644 --- a/src/modules/m_disable.cpp +++ b/src/modules/m_disable.cpp @@ -1,7 +1,8 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2019 Peter Powell + * Copyright (C) 2019-2020 Sadie Powell + * Copyright (C) 2019 Robby * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -54,8 +55,8 @@ class ModuleDisable : public Module // Check that the mode actually exists. ModeHandler* mh = ServerInstance->Modes->FindMode(chr, type); - if (!chr) - throw ModuleException(InspIRCd::Format("Non-existent mode '%c' was specified in at %s", + if (!mh) + throw ModuleException(InspIRCd::Format("Nonexistent mode '%c' was specified in at %s", chr, field.c_str(), tag->getTagLocation().c_str())); // Disable the mode. @@ -89,11 +90,11 @@ class ModuleDisable : public Module // Check that the command actually exists. Command* handler = ServerInstance->Parser.GetHandler(command); if (!handler) - throw ModuleException(InspIRCd::Format("Non-existent command '%s' was specified in at %s", + throw ModuleException(InspIRCd::Format("Nonexistent command '%s' was specified in at %s", command.c_str(), tag->getTagLocation().c_str())); - // Prevent admins from disabling COMMANDS and MODULES for transparency reasons. - if (handler->name == "COMMANDS" || handler->name == "MODULES") + // Prevent admins from disabling MODULES for transparency reasons. + if (handler->name == "MODULES") continue; // Disable the command. @@ -162,15 +163,17 @@ class ModuleDisable : public Module // The user has tried to change a disabled mode! const char* what = mh->GetModeType() == MODETYPE_CHANNEL ? "channel" : "user"; - WriteLog("%s was blocked from executing the disabled %s mode %c (%s)", - user->GetFullRealHost().c_str(), what, mh->GetModeChar(), mh->name.c_str()); + WriteLog("%s was blocked from %ssetting the disabled %s mode %c (%s)", + user->GetFullRealHost().c_str(), adding ? "" : "un", + what, mh->GetModeChar(), mh->name.c_str()); if (fakenonexistent) { // The server administrator has specified that disabled modes should be // treated as if they do not exist. - user->WriteNumeric(mh->GetModeType() == MODETYPE_CHANNEL ? ERR_UNKNOWNMODE : ERR_UNKNOWNSNOMASK, - mh->GetModeChar(), "is unknown mode char to me"); + int numeric = (mh->GetModeType() == MODETYPE_CHANNEL ? ERR_UNKNOWNMODE : ERR_UNKNOWNSNOMASK); + const char* typestr = (mh->GetModeType() == MODETYPE_CHANNEL ? "channel" : "user"); + user->WriteNumeric(numeric, mh->GetModeChar(), InspIRCd::Format("is not a recognised %s mode.", typestr)); return MOD_RES_DENY; } @@ -182,7 +185,7 @@ class ModuleDisable : public Module Version GetVersion() CXX11_OVERRIDE { - return Version("Provides support for disabling commands and modes", VF_VENDOR); + return Version("Allows commands, channel modes, and user modes to be disabled.", VF_VENDOR); } };