diff options
author | Miklos Vajna <vmiklos@vmiklos.hu> | 2013-02-09 12:31:43 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-02-09 12:31:43 +0100 |
commit | c2cc24cd9d7a976aca383e508f2c6779d6cdb14a (patch) | |
tree | 47342e6c010ccaa53c683b6f96e1d5829ab24ea8 /root_commands.c | |
parent | db34b0671c81b8021639b07a704e2e05b38b9f40 (diff) |
Implement 'group info' command to list members of a group (#741)
Diffstat (limited to 'root_commands.c')
-rw-r--r-- | root_commands.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/root_commands.c b/root_commands.c index d4adfa81..6c10346e 100644 --- a/root_commands.c +++ b/root_commands.c @@ -1290,6 +1290,37 @@ static void cmd_group( irc_t *irc, char **cmd ) } irc_rootmsg( irc, "End of group list" ); } + else if( g_strncasecmp(cmd[1], "info", len ) == 0 ) + { + bee_group_t *bg = NULL; + int n = 0; + + MIN_ARGS(2); + + for( l = irc->b->groups; l; l = l->next ) + { + bee_group_t *bg = l->data; + if( !strcmp( bg->name, cmd[2] ) ) + { + bg = l->data; + break; + } + } + if( bg ) + { + if( strchr(irc->umode, 'b') ) + irc_rootmsg( irc, "Members of %s:", cmd[2] ); + for( l = irc->b->users; l; l = l->next ) + { + bee_user_t *bu = l->data; + if( bu->group == bg ) + irc_rootmsg( irc, "%d. %s", n ++, bu->nick ? : bu->handle ); + } + irc_rootmsg( irc, "End of member list" ); + } + else + irc_rootmsg( irc, "Unknown group: %s. Please use \x02group list\x02 to get a list of available groups.", cmd[2] ); + } else { irc_rootmsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "group", cmd[1] ); |