#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SETNAME module: Adds the /SETNAME command.
#<module name="setname">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SETNAME CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# operonly - Whether the SETNAME command should only be usable by #
+# server operators. Defaults to no. #
+# #
+# notifyopers - Whether to send a snotice to snomask `a` when the #
+# server operators. Defaults to to yes if oper-only and #
+# no if usable by everyone. #
+# #
+#<setname notifyopers="yes" #
+# operonly="no"> #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Serverban: Implements extended ban 's', which stops anyone connected
class CommandSetname : public Command
{
public:
+ bool notifyopers;
CommandSetname(Module* Creator) : Command(Creator,"SETNAME", 1, 1)
{
allow_empty_last_param = false;
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;
{
}
+ 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);