MODE handling
authorJack Allnutt <m2ys4u@gmail.com>
Fri, 25 Jan 2013 03:00:42 +0000 (03:00 +0000)
committerDarren <darren@darrenwhitlen.com>
Thu, 31 Jan 2013 14:58:43 +0000 (14:58 +0000)
server/irc/channel.js
server/irc/commands.js
server/irc/user.js

index 3a8993f0d2c3671de615bbd58314e740d52de061..99b19ff7559663bd83b3a209939ba2edf6a45833 100644 (file)
@@ -37,7 +37,8 @@ IrcChannel.prototype.irc_events = {
     nicklistEnd:    onNicklistEnd,
     banlist:        onBanList,
     banlist_end:    onBanListEnd,
-    topicsetby:     onTopicSetby
+    topicsetby:     onTopicSetby,
+    mode:           onMode
 };
 
 
@@ -194,6 +195,14 @@ function onTopicSetBy(event) {
     });
 };
 
+function onMode(event) {
+    this.irc_connection.clientEvent('mode', {
+        target: event.target,
+        nick: event.nick,
+        modes: event.modes
+    });
+};
+
 
 /*
 server:event
index a58355f448df2f02a1616e7d9bd8bab8ff0af5d0..dd0f4aa18e17105f3690ab1844da49b6cef572a6 100644 (file)
@@ -372,7 +372,7 @@ var listeners = {
             prefixes = this.irc_connection.options.PREFIX || [],
             always_param = (chanmodes[0] || '').concat((chanmodes[1] || '')),
             modes = [],
-            has_param, i, j, add;
+            has_param, i, j, add, event;
         
         prefixes = _.reduce(prefixes, function (list, prefix) {
             list.push(prefix.mode);
@@ -416,8 +416,9 @@ var listeners = {
             }
         }
         
-        this.client.sendIrcCommand('mode', {
-            server: this.con_num,
+        event = (_.contains(this.irc_connection.options.CHANTYPES, command.params[0][0]) ? 'channel' : 'user') + command.params[0] + ':mode';
+        
+        this.irc_connection.emit(event, {
             target: command.params[0],
             nick: command.nick || command.prefix || '',
             modes: modes
index f3ba146f25c909166a29bf25f9f8a8d02051cb67..2ca511710e170910e820d2145ac72165ded2f8b7 100755 (executable)
@@ -27,7 +27,8 @@ IrcUser.prototype.irc_events = {
     notice:         onNotice,\r
     ctcp_response:  onCtcpResponse,\r
     privmsg:        onPrivmsg,\r
-    ctcp_request:   onCtcpRequest\r
+    ctcp_request:   onCtcpRequest,\r
+    mode:           onMode\r
 };\r
 \r
 function onNick(event) {\r
@@ -162,3 +163,11 @@ function onCtcpRequest(event) {
         msg: event.msg\r
     });\r
 };\r
+\r
+function onMode(event) {\r
+    this.irc_connection.clientEvent('mode', {\r
+        target: event.target,\r
+        nick: event.nick,\r
+        modes: event.modes\r
+    });\r
+};\r