about summary refs log tree commit diff stats
path: root/src/server_events.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server_events.c')
-rw-r--r--src/server_events.c33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/server_events.c b/src/server_events.c
index f920e1a9..0bb017b8 100644
--- a/src/server_events.c
+++ b/src/server_events.c
@@ -490,6 +490,7 @@ void
 handle_leave_room(const char * const room)
 {
     muc_leave(room);
+    ui_leave_room(room);
 }
 
 void
@@ -511,7 +512,22 @@ void
 handle_room_destroy(const char * const room)
 {
     muc_leave(room);
-    ui_room_destroyed(room);
+    ui_room_destroy(room);
+}
+
+void
+handle_room_destroyed(const char * const room, const char * const new_jid, const char * const password,
+    const char * const reason)
+{
+    muc_leave(room);
+    ui_room_destroyed(room, reason, new_jid, password);
+}
+
+void
+handle_room_kicked(const char * const room, const char * const actor, const char * const reason)
+{
+    muc_leave(room);
+    ui_room_kicked(room, actor, reason);
 }
 
 void
@@ -539,12 +555,6 @@ handle_room_config_submit_result_error(const char * const room, const char * con
 }
 
 void
-handle_room_kick(const char * const room, const char * const nick)
-{
-    ui_handle_room_kick(room, nick);
-}
-
-void
 handle_room_kick_result_error(const char * const room, const char * const nick, const char * const error)
 {
     ui_handle_room_kick_error(room, nick, error);
@@ -620,6 +630,15 @@ handle_room_member_offline(const char * const room, const char * const nick,
 }
 
 void
+handle_room_occupent_kicked(const char * const room, const char * const nick, const char * const actor,
+    const char * const reason)
+{
+    muc_roster_remove(room, nick);
+    ui_room_member_kicked(room, nick, actor, reason);
+}
+
+
+void
 handle_room_member_nick_change(const char * const room,
     const char * const old_nick, const char * const nick)
 {