aboutsummaryrefslogtreecommitdiffstats
path: root/irc_user.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-03-27 13:36:47 -0400
committerWilmer van der Gaast <wilmer@gaast.net>2010-03-27 13:36:47 -0400
commit280c56a7b24dc08b35a1ecd98c8f4b61435d1100 (patch)
tree81340377a433898775385ee070beea1e4ea5e65b /irc_user.c
parent2f53ada73d7d43b538c157563ab5eb39b7592137 (diff)
Added privmsg handlers to users/channels. root commands are coming back.
Diffstat (limited to 'irc_user.c')
-rw-r--r--irc_user.c32
1 files changed, 28 insertions, 4 deletions
diff --git a/irc_user.c b/irc_user.c
index 1de0c4e3..a54fc09e 100644
--- a/irc_user.c
+++ b/irc_user.c
@@ -50,7 +50,7 @@ int irc_user_free( irc_t *irc, const char *nick )
{
irc_user_t *iu;
- if( !( iu = irc_user_find( irc, nick ) ) )
+ if( !( iu = irc_user_by_name( irc, nick ) ) )
return 0;
irc->users = g_slist_remove( irc->users, iu );
@@ -67,7 +67,7 @@ int irc_user_free( irc_t *irc, const char *nick )
return 1;
}
-irc_user_t *irc_user_find( irc_t *irc, const char *nick )
+irc_user_t *irc_user_by_name( irc_t *irc, const char *nick )
{
char key[strlen(nick)+1];
@@ -80,11 +80,11 @@ irc_user_t *irc_user_find( irc_t *irc, const char *nick )
int irc_user_rename( irc_t *irc, const char *old, const char *new )
{
- irc_user_t *iu = irc_user_find( irc, old );
+ irc_user_t *iu = irc_user_by_name( irc, old );
char key[strlen(new)+1];
strcpy( key, new );
- if( iu == NULL || !nick_lc( key ) || irc_user_find( irc, new ) )
+ if( iu == NULL || !nick_lc( key ) || irc_user_by_name( irc, new ) )
return 0;
irc->users = g_slist_remove( irc->users, iu );
@@ -112,3 +112,27 @@ gint irc_user_cmp( gconstpointer a_, gconstpointer b_ )
return strcmp( a->key, b->key );
}
+
+/* User-type dependent functions, for root/NickServ: */
+static gboolean root_privmsg( irc_user_t *iu, const char *msg )
+{
+ root_command_string( iu->irc, msg );
+
+ return TRUE;
+}
+
+const struct irc_user_funcs irc_user_root_funcs = {
+ root_privmsg,
+};
+
+/* Echo to yourself: */
+static gboolean self_privmsg( irc_user_t *iu, const char *msg )
+{
+ irc_send_msg( iu, "PRIVMSG", iu->nick, msg );
+
+ return TRUE;
+}
+
+const struct irc_user_funcs irc_user_self_funcs = {
+ self_privmsg,
+};