channel:join + channel:leave plugin events
authorDarren <darren@darrenwhitlen.com>
Fri, 28 Nov 2014 18:33:11 +0000 (18:33 +0000)
committerDarren <darren@darrenwhitlen.com>
Fri, 28 Nov 2014 18:33:11 +0000 (18:33 +0000)
client/src/models/network.js

index edd23a4b68773db49abecfd0f93fbd3b836d1e28..f4f46f21537ad5c51daa4d1d63b5902e415afdf0 100644 (file)
             hostname: event.hostname,
             user_prefixes: this.get('user_prefixes')
         });
-        members.add(user, {kiwi: event});
+
+        _kiwi.global.events.emit('channel:join', {channel: event.channel, user: user})
+        .then(function() {
+            members.add(user, {kiwi: event});
+        });
     }
 
 
         user = members.getByNick(event.nick);
         if (!user) return;
 
-        members.remove(user, {kiwi: part_options});
+        _kiwi.global.events.emit('channel:leave', {channel: event.channel, user: user, type: 'part', message: part_options.message})
+        .then(function() {
+            members.remove(user, {kiwi: part_options});
+        });
     }
 
 
             if (panel.isChannel()) {
                 member = panel.get('members').getByNick(event.nick);
                 if (member) {
-                    panel.get('members').remove(member, {kiwi: quit_options});
+                    _kiwi.global.events.emit('channel:leave', {channel: panel.get('name'), user: member, type: 'quit', message: part_options.message})
+                    .then(function() {
+                        panel.get('members').remove(member, {kiwi: quit_options});
+                    });
                 }
             }
         });
         if (!user) return;
 
 
-        members.remove(user, {kiwi: part_options});
+        _kiwi.global.events.emit('channel:leave', {channel: event.channel, user: user, type: 'kick', message: part_options.message})
+        .then(function() {
+            members.remove(user, {kiwi: part_options});
 
-        if (part_options.current_user_kicked) {
-            members.reset([]);
-        }
+            if (part_options.current_user_kicked) {
+                members.reset([]);
+            }
+        });
     }