@@ -313,12 +313,14 @@ function Client(server, nick, opt) {
313313
314314 channels = [ ] ;
315315
316- // TODO better way of finding what channels a user is in?
316+ // finding what channels a user is in
317317 Object . keys ( self . chans ) . forEach ( function ( channame ) {
318318 var channel = self . chans [ channame ] ;
319- channel . users [ message . args [ 0 ] ] = channel . users [ message . nick ] ;
320- delete channel . users [ message . nick ] ;
321- channels . push ( channame ) ;
319+ if ( message . nick in channel . users ) {
320+ channel . users [ message . args [ 0 ] ] = channel . users [ message . nick ] ;
321+ delete channel . users [ message . nick ] ;
322+ channels . push ( channame ) ;
323+ }
322324 } ) ;
323325
324326 // old nick, new nick, channels
@@ -501,8 +503,10 @@ function Client(server, nick, opt) {
501503 channels = [ ] ;
502504 Object . keys ( self . chans ) . forEach ( function ( channame ) {
503505 var channel = self . chans [ channame ] ;
504- channels . push ( channame ) ;
505- delete channel . users [ nick ] ;
506+ if ( nick in channel . users ) {
507+ channels . push ( channame ) ;
508+ delete channel . users [ nick ] ;
509+ }
506510 } ) ;
507511 self . emit ( 'kill' , nick , message . args [ 1 ] , channels , message ) ;
508512 break ;
@@ -544,11 +548,13 @@ function Client(server, nick, opt) {
544548
545549 channels = [ ] ;
546550
547- // TODO better way of finding what channels a user is in?
551+ // finding what channels a user is in?
548552 Object . keys ( self . chans ) . forEach ( function ( channame ) {
549553 var channel = self . chans [ channame ] ;
550- delete channel . users [ message . nick ] ;
551- channels . push ( channame ) ;
554+ if ( message . nick in channel . users ) {
555+ delete channel . users [ message . nick ] ;
556+ channels . push ( channame ) ;
557+ }
552558 } ) ;
553559
554560 // who, reason, channels
0 commit comments