@@ -611,6 +611,10 @@ function clientReconnect(socket) {
611
611
612
612
socket . write ( "@time=null;msgid=null :" + connection . nick + "!" + connection . ircuser + "@" + connection . host + " JOIN :" + _channel . name + "\n" ) ;
613
613
_mode_params = '' ;
614
+
615
+ if ( typeof _channel . modes === 'undefined' )
616
+ _channel . modes = "" ;
617
+
614
618
for ( x = 0 ; x < _channel . modes . length ; x ++ ) {
615
619
switch ( _channel . modes [ x ] ) {
616
620
case 'k' : _mode_params += ' ' + _channel . key ;
@@ -808,35 +812,28 @@ function clientConnect(socket) {
808
812
break ;
809
813
case '324' :
810
814
case 'MODE' :
811
- if ( data [ 2 ] == "MODE" ) {
812
- _target = data [ 1 ] == '324' ? data [ 3 ] . trim ( ) : data [ 3 ] . trim ( ) ;
815
+ if ( data [ 1 ] == '324' ) {
816
+ _target = data [ 3 ] . trim ( ) ;
813
817
_sender = data [ 1 ] . substr ( 1 ) . split ( "!" ) [ 0 ] ;
814
- _mode = data [ 1 ] == '324' ?data [ 4 ] . trim ( ) :data [ 4 ] . trim ( ) ;
815
- _mode = _mode . indexOf ( ":" ) != - 1 ?_mode . substr ( 1 ) :_mode ;
816
- _mode_target = [ ] ;
817
- if ( data [ 1 ] == '324' ) {
818
- if ( data [ 5 ] )
819
- _mode_target = data . slice ( 5 , data . length ) ;
820
- }
821
- else {
822
- if ( data [ 5 ] )
823
- _mode_target = data . slice ( 5 , data . length ) ;
824
- }
818
+ _mode = data [ 4 ] . trim ( ) ;
819
+ if ( data [ 5 ] )
820
+ _mode_target = data . slice ( 5 , data . length ) ;
821
+ }
822
+ else if ( data [ 2 ] == 'MODE' ) {
823
+ _target = data [ 3 ] . trim ( ) ;
824
+ _sender = data [ 1 ] . substr ( 1 ) . split ( "!" ) [ 0 ] ;
825
+ _mode = data [ 4 ] . trim ( ) ;
826
+ if ( data [ 5 ] )
827
+ _mode_target = data . slice ( 5 , data . length ) ;
825
828
} else {
826
- _target = data [ 1 ] == '324' ?data [ 3 ] . trim ( ) :data [ 2 ] . trim ( ) ;
827
- _sender = data [ 0 ] . substr ( 1 ) . split ( "!" ) [ 0 ] ;
828
- _mode = data [ 1 ] == '324' ?data [ 4 ] . trim ( ) :data [ 3 ] . trim ( ) ;
829
- _mode = _mode . indexOf ( ":" ) != - 1 ?_mode . substr ( 1 ) :_mode ;
830
- _mode_target = [ ] ;
831
- if ( data [ 1 ] == '324' ) {
832
- if ( data [ 5 ] )
833
- _mode_target = data . slice ( 5 , data . length ) ;
834
- }
835
- else {
836
- if ( data [ 4 ] )
837
- _mode_target = data . slice ( 4 , data . length ) ;
838
- }
829
+ _target = data [ 2 ] . trim ( ) ;
830
+ _sender = data [ 2 ] ;
831
+ _mode = data [ 3 ] . trim ( ) ;
832
+ if ( data [ 4 ] )
833
+ _mode_target = data . slice ( 4 , data . length ) ;
839
834
}
835
+
836
+ _mode = _mode . indexOf ( ":" ) != - 1 ?_mode . substr ( 1 ) :_mode ;
840
837
841
838
_mode_count = 0 ;
842
839
_add = true ;
@@ -1112,11 +1109,13 @@ function clientConnect(socket) {
1112
1109
_sender = data [ 1 ] . substr ( 1 ) . split ( "!" ) [ 0 ] ;
1113
1110
for ( key in this . channels ) {
1114
1111
if ( this . channels . hasOwnProperty ( key ) ) {
1115
- for ( x = 0 ; x < this . channels [ key ] . names . length ; x ++ )
1116
- if ( this . channels [ key ] . names [ x ] . replace ( "@" , "" ) . replace ( "+" , "" ) . replace ( "~" , "" ) . replace ( "%" , "" ) == _sender )
1117
- break ;
1118
- this . channels [ key ] . names . splice ( x , 1 ) ;
1119
- this . channels [ key ] . userhosts . splice ( x , 1 ) ;
1112
+ for ( x = 0 ; x < this . channels [ key ] . names . length ; x ++ ) {
1113
+ if ( this . channels [ key ] . names [ x ] . replace ( "@" , "" ) . replace ( "+" , "" ) . replace ( "~" , "" ) . replace ( "%" , "" ) == _sender ) {
1114
+ this . channels [ key ] . names . splice ( x , 1 ) ;
1115
+ this . channels [ key ] . userhosts . splice ( x , 1 ) ;
1116
+ break ;
1117
+ }
1118
+ }
1120
1119
}
1121
1120
}
1122
1121
break ;
@@ -1141,19 +1140,21 @@ function clientConnect(socket) {
1141
1140
this . _getnames [ _channel ] = false ;
1142
1141
break ;
1143
1142
case 'NICK' :
1144
- _sender = data [ 1 ] . substr ( 1 ) ;
1143
+ _sender = data [ 1 ] . substr ( 1 ) . split ( "!" ) [ 0 ] ;
1145
1144
_new = data [ 3 ] . substr ( 1 ) . trim ( ) ;
1145
+
1146
1146
if ( _sender == this . nick ) {
1147
1147
this . nick = _new ;
1148
1148
}
1149
+
1149
1150
for ( key in this . channels ) {
1150
1151
if ( this . channels . hasOwnProperty ( key ) ) {
1151
1152
for ( x = 0 ; x < this . channels [ key ] . names . length ; x ++ ) {
1153
+ if ( this . channels [ key ] . names [ x ] . replace ( "@" , "" ) . replace ( "+" , "" ) . replace ( "~" , "" ) . replace ( "%" , "" ) == _sender ) {
1152
1154
_statut = ( / ( @ | % | \+ ) / . test ( this . channels [ key ] . names [ x ] . substr ( 0 , 1 ) ) ? this . channels [ key ] . names [ x ] . substr ( 0 , 1 ) : "" ) ;
1153
- if ( this . channels [ key ] . names [ x ] . replace ( "@" , "" ) . replace ( "+" , "" ) . replace ( "~" , "" ) . replace ( "%" , "" ) == _sender ) {
1154
- this . channels [ key ] . names . splice ( x , 1 ) ;
1155
- this . channels [ key ] . names . push ( _statut + _new ) ;
1156
- break ;
1155
+ this . channels [ key ] . names . splice ( x , 1 ) ;
1156
+ this . channels [ key ] . names . push ( _statut + _new ) ;
1157
+ break ;
1157
1158
}
1158
1159
}
1159
1160
}
0 commit comments