summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-18 23:48:46 +0000
committerrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-18 23:48:46 +0000
commit2b0914ae368d30573cb573d69016de8a7a615c59 (patch)
treebfbbca87454d6fd4ba7ba114240ef3fc2b5a605e
parentd20e4eb6ee14102b6609ad9277bd03f5e683717f (diff)
Add OnUserConnect event, mark OnSaveDatabase deprecated pending db redesign.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2113 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--include/modules.h13
-rw-r--r--src/users.c5
2 files changed, 15 insertions, 3 deletions
diff --git a/include/modules.h b/include/modules.h
index b2c04582f..51ffea816 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -512,7 +512,16 @@ class CoreExport Module
*/
virtual EventReturn OnBotUnAssign(User *sender, ChannelInfo *ci) { return EVENT_CONTINUE; }
- virtual void OnSaveDatabase() { }
+ /** Called when a new user connects to the network.
+ * @param u The connecting user.
+ */
+ virtual void OnUserConnect(User *u) { }
+
+ /** Called when anope saves databases.
+ * NOTE: This event is deprecated pending new database handling.
+ * XXX.
+ */
+ virtual void OnSaveDatabase() MARK_DEPRECATED { }
};
@@ -521,7 +530,7 @@ class CoreExport Module
enum Implementation
{
I_BEGIN,
- I_OnUserKicked, I_OnReload, I_OnBotAssign, I_OnBotUnAssign, I_OnSaveDatabase,
+ I_OnUserKicked, I_OnReload, I_OnBotAssign, I_OnBotUnAssign, I_OnSaveDatabase, I_OnUserConnect,
I_END
};
diff --git a/src/users.c b/src/users.c
index 450e8f764..5bda7db9d 100644
--- a/src/users.c
+++ b/src/users.c
@@ -13,6 +13,7 @@
*/
#include "services.h"
+#include "modules.h"
#define HASH(nick) (((nick)[0]&31)<<5 | ((nick)[1]&31))
User *userlist[1024];
@@ -614,6 +615,7 @@ User *do_nick(const char *source, const char *nick, const char *username, const
if (LimitSessions && !is_ulined(server))
add_session(nick, host, ipbuf);
+
/* Allocate User structure and fill it in. */
user = new User(nick, uid ? uid : "");
user->SetIdent(username);
@@ -634,7 +636,8 @@ User *do_nick(const char *source, const char *nick, const char *username, const
display_news(user, NEWS_LOGON);
display_news(user, NEWS_RANDOM);
- send_event(EVENT_NEWNICK, 1, nick);
+
+ FOREACH_MOD(I_OnUserConnect, OnUserConnect(user));
} else {
/* An old user changing nicks. */
if (ircd->ts6)