summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2019-01-28 19:42:02 +0000
committerPeter Powell <petpow@saberuk.com>2019-01-28 19:42:02 +0000
commita032cd90ad5582914759e226085efee5aae1a1ef (patch)
treea201d1aa87e00d89f1c6c25d5c14492f732d4080 /src
parent18678c6a22f72152b7dacc356c791868b4e170c4 (diff)
Allow configuring whether SETNAME sends snotices and is oper-only.
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_setname.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/modules/m_setname.cpp b/src/modules/m_setname.cpp
index efe7028b7..ae85fc98d 100644
--- a/src/modules/m_setname.cpp
+++ b/src/modules/m_setname.cpp
@@ -26,6 +26,7 @@
class CommandSetname : public Command
{
public:
+ bool notifyopers;
CommandSetname(Module* Creator) : Command(Creator,"SETNAME", 1, 1)
{
allow_empty_last_param = false;
@@ -42,7 +43,9 @@ class CommandSetname : public Command
if (user->ChangeRealName(parameters[0]))
{
- ServerInstance->SNO->WriteGlobalSno('a', "%s used SETNAME to change their real name to '%s'", user->nick.c_str(), parameters[0].c_str());
+ if (notifyopers)
+ ServerInstance->SNO->WriteGlobalSno('a', "%s used SETNAME to change their real name to '%s'",
+ user->nick.c_str(), parameters[0].c_str());
}
return CMD_SUCCESS;
@@ -59,6 +62,18 @@ class ModuleSetName : public Module
{
}
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
+ {
+ ConfigTag* tag = ServerInstance->Config->ConfValue("cgiirc");
+
+ // Whether the module should only be usable by server operators.
+ bool operonly = tag->getBool("operonly");
+ cmd.flags_needed = operonly ? 'o' : 0;
+
+ // Whether a snotice should be sent out when a user changes their real name.
+ cmd.notifyopers = tag->getBool("notifyopers", !operonly);
+ }
+
Version GetVersion() CXX11_OVERRIDE
{
return Version("Provides support for the SETNAME command", VF_VENDOR);