Mercurial > hg
changeset 571:d63e6cbdc297
Add "/room ban"
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 03 Dec 2005 14:25:34 +0100 |
parents | 29806b0fe830 |
children | afc2bd38b15c |
files | mcabber/src/commands.c |
diffstat | 1 files changed, 28 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/commands.c Sat Dec 03 13:48:27 2005 +0100 +++ b/mcabber/src/commands.c Sat Dec 03 14:25:34 2005 +0100 @@ -156,6 +156,7 @@ compl_add_category_word(COMPL_MULTILINE, "verbatim"); // Room category + compl_add_category_word(COMPL_ROOM, "ban"); compl_add_category_word(COMPL_ROOM, "invite"); compl_add_category_word(COMPL_ROOM, "join"); compl_add_category_word(COMPL_ROOM, "kick"); @@ -1244,13 +1245,36 @@ free_arg_lst(paramlst); } +// The expected argument is a Jabber id +static void room_ban(gpointer bud, char *arg) +{ + char **paramlst; + gchar *jid; + const char *roomid = buddy_getjid(bud); + + paramlst = split_arg(arg, 2, 1); // jid, [reason] + jid = *paramlst; + arg = *(paramlst+1); + + if (!jid || !*jid) { + scr_LogPrint(LPRINT_NORMAL, "Missing parameter (Jabber id)"); + free_arg_lst(paramlst); + return; + } + + jb_room_kickban(roomid, jid, NULL, 2, arg); + + free_arg_lst(paramlst); +} + +// The expected argument is a nickname static void room_kick(gpointer bud, char *arg) { char **paramlst; gchar *nick; const char *roomid = buddy_getjid(bud); - paramlst = split_arg(arg, 2, 1); // nickname, reason + paramlst = split_arg(arg, 2, 1); // nickname, [reason] nick = *paramlst; arg = *(paramlst+1); @@ -1395,6 +1419,9 @@ } else if (!strcasecmp(subcmd, "invite")) { if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) room_invite(bud, arg); + } else if (!strcasecmp(subcmd, "ban")) { + if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) + room_ban(bud, arg); } else if (!strcasecmp(subcmd, "kick")) { if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) room_kick(bud, arg);