summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-03-13 17:18:11 -0400
committerAdam <Adam@anope.org>2012-03-13 17:18:11 -0400
commit053d6a22470062e8eee08c5522788f432d8146ab (patch)
treeca12bcc9a8db8e883074f26916f28a0eb4953fd6
parentbeae4775cfd6692c30573a6e6ae4fa748d377fed (diff)
Add a nickserv:unregistered_notice config option to send a message to unregistered users on connect. Suggested by Cronus.
-rw-r--r--data/nickserv.example.conf7
-rw-r--r--docs/Changes.conf1
-rw-r--r--include/config.h2
-rw-r--r--modules/pseudoclients/nickserv.cpp8
-rw-r--r--src/config.cpp1
5 files changed, 18 insertions, 1 deletions
diff --git a/data/nickserv.example.conf b/data/nickserv.example.conf
index ed6be018c..8e84db4e8 100644
--- a/data/nickserv.example.conf
+++ b/data/nickserv.example.conf
@@ -88,6 +88,13 @@ nickserv
registration = "none"
/*
+ * A message sent to users on connect if they user an unregistered nick.
+ *
+ * This directive is optional.
+ */
+ #unregistered_notice = "Your nickname is not registered. To register it use /nickserv regsiter password email."
+
+ /*
* The default options for newly registered nicks. Note that changing these options
* will have no effect on nicks which are already registered. The list must be separated
* by spaces.
diff --git a/docs/Changes.conf b/docs/Changes.conf
index 51f8c92bd..f966a7d05 100644
--- a/docs/Changes.conf
+++ b/docs/Changes.conf
@@ -3,6 +3,7 @@ Anope Version 1.9.7
operserv:notifications removed in favor of log{} blocks
options:regexengine added
nickserv:registration added, emailregistration removed.
+nickserv:unregistered_notice added
Anope Version 1.9.6
-------------------
diff --git a/include/config.h b/include/config.h
index 9daa56022..ef452e8e0 100644
--- a/include/config.h
+++ b/include/config.h
@@ -533,6 +533,8 @@ class CoreExport ServerConfig
bool NSStrictPrivileges;
/* Type of confirmation to use, or to disable registration completely */
Anope::string NSRegistration;
+ /* A message sent to unregistered users on connect */
+ Anope::string NSUnregisteredNotice;
/* Core NickServ modules */
Anope::string NickCoreModules;
/* Set the proper channel modes on users when they identify */
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp
index 8dff653a1..c73142bd0 100644
--- a/modules/pseudoclients/nickserv.cpp
+++ b/modules/pseudoclients/nickserv.cpp
@@ -197,7 +197,7 @@ class NickServCore : public Module
throw ModuleException("No bot named " + Config->NickServ);
Implementation i[] = { I_OnDelNick, I_OnDelCore, I_OnChangeCoreDisplay, I_OnNickIdentify, I_OnNickGroup,
- I_OnNickUpdate, I_OnUserNickChange, I_OnPreHelp, I_OnPostHelp };
+ I_OnNickUpdate, I_OnUserNickChange, I_OnPreHelp, I_OnPostHelp, I_OnUserConnect };
ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation));
}
@@ -350,6 +350,12 @@ class NickServCore : public Module
"will result in, at minimum, loss of the abused\n"
"nickname(s)."), Config->NickServ.c_str());
}
+
+ void OnUserConnect(dynamic_reference<User> &u, bool &exempt) anope_override
+ {
+ if (!Config->NoNicknameOwnership && !Config->NSUnregisteredNotice.empty() && u)
+ u->SendMessage(NickServ, Config->NSUnregisteredNotice);
+ }
};
MODULE_INIT(NickServCore)
diff --git a/src/config.cpp b/src/config.cpp
index 5093e9963..f597158ea 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -1160,6 +1160,7 @@ ConfigItems::ConfigItems(ServerConfig *conf)
{"options", "regexengine", "", new ValueContainerString(&conf->RegexEngine), DT_STRING, NoValidation},
{"nickserv", "name", "", new ValueContainerString(&conf->NickServ), DT_STRING, NoValidation},
{"nickserv", "registration", "none", new ValueContainerString(&conf->NSRegistration), DT_STRING, ValidateNickServ},
+ {"nickserv", "unregistered_notice", "", new ValueContainerString(&conf->NSUnregisteredNotice), DT_STRING, NoValidation},
{"nickserv", "forceemail", "no", new ValueContainerBool(&conf->NSForceEmail), DT_BOOLEAN, ValidateEmailReg},
{"nickserv", "confirmemailchanges", "no", new ValueContainerBool(&conf->NSConfirmEmailChanges), DT_BOOLEAN, NoValidation},
{"nickserv", "defaults", "secure memosignon memoreceive", new ValueContainerString(&NSDefaults), DT_STRING, NoValidation},