about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-10-05 03:52:55 +0100
committerJames Booth <boothj5@gmail.com>2014-10-05 03:52:55 +0100
commitac7bc02c63a5aed8decfcbbdc5582e9e5b389030 (patch)
tree302fa5fcd1ea72e67071d2043051eef3fef12ea1 /src/ui/core.c
parent7584ddaa62033f876b78a4de8b32d8e1e90e0619 (diff)
downloadprofani-tty-ac7bc02c63a5aed8decfcbbdc5582e9e5b389030.tar.gz
Added /room kick command
Diffstat (limited to 'src/ui/core.c')
-rw-r--r--src/ui/core.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index 0aca17b6..620d08d8 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -1740,6 +1740,28 @@ _ui_room_subject(const char * const room, const char * const nick, const char *
 }
 
 static void
+_ui_handle_room_kick_error(const char * const room, const char * const nick, const char * const error)
+{
+    ProfWin *window = wins_get_by_recipient(room);
+    if (window == NULL) {
+        log_error("Kick error received for %s, but no window open for %s.", nick, room);
+    } else {
+        win_save_vprint(window, '!', NULL, 0, COLOUR_ERROR, "", "Error kicking %s: %s", nick, error);
+    }
+}
+
+static void
+_ui_handle_room_kick(const char * const room, const char * const nick)
+{
+    ProfWin *window = wins_get_by_recipient(room);
+    if (window == NULL) {
+        log_error("Kick result received for %s, but no window open for %s.", nick, room);
+    } else {
+        win_save_vprint(window, '!', NULL, 0, 0, "", "%s has been kicked from the room", nick);
+    }
+}
+
+static void
 _ui_room_broadcast(const char * const room_jid, const char * const message)
 {
     ProfWin *window = wins_get_by_recipient(room_jid);
@@ -2764,5 +2786,6 @@ ui_init_module(void)
     ui_handle_room_affiliation_list =_ui_handle_room_affiliation_list;
     ui_handle_room_affiliation_set_error =_ui_handle_room_affiliation_set_error;
     ui_handle_room_affiliation_set = _ui_handle_room_affiliation_set;
-
+    ui_handle_room_kick_error =_ui_handle_room_kick_error;
+    ui_handle_room_kick = _ui_handle_room_kick;
 }