Changeset 3341

Show
Ignore:
Timestamp:
08/22/06 01:15:29 (2 years ago)
Author:
timothy
Message:

Rolling out me previous change. This damn non-standard IRC thing sucks.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Chat Core/MVIRCChatConnection.m

    r3340 r3341  
    20902090                if( room && ! [room _namesSynced] ) { 
    20912091                        NSAutoreleasePool *pool = [[NSAutoreleasePool allocWithZone:nil] init]; 
    2092                         NSMutableDictionary *prefixes = [_serverInformation objectForKey:@"roomMemberPrefixTable"]; 
    20932092                        NSString *names = [self _stringFromPossibleData:[parameters objectAtIndex:3]]; 
    20942093                        NSArray *members = [names componentsSeparatedByString:@" "]; 
     
    20992098                                if( ! [memberName length] ) break; 
    21002099 
    2101                                 MVChatRoomMemberMode mode = MVChatRoomMemberNoModes; 
    2102  
    2103                                 unsigned int i = 0; 
    2104                                 unsigned int length = [memberName length]; 
    2105                                 for( i = 0; i < length; i++ ) { 
    2106                                         unichar chr = [memberName characterAtIndex:i]; 
    2107                                         if( ! isalpha( chr ) ) { 
    2108                                                 if( prefixes ) { 
    2109                                                         NSString *key = [[NSString allocWithZone:nil] initWithFormat:@"%c", chr]; 
    2110                                                         mode = [[prefixes objectForKey:key] unsignedLongValue]; 
    2111                                                         [key release]; 
    2112                                                 } else { 
    2113                                                         switch( chr ) { 
    2114                                                                 case '+': mode = MVChatRoomMemberVoicedMode; break; 
    2115                                                                 case '@': mode = MVChatRoomMemberOperatorMode; break; 
    2116                                                                 default: break; 
    2117                                                         } 
    2118                                                 } 
    2119                                         } else break; 
     2100                                MVChatRoomMemberMode modes = MVChatRoomMemberNoModes; 
     2101                                if( _serverInformation ) { 
     2102                                        NSMutableDictionary *prefixes = [_serverInformation objectForKey:@"roomMemberPrefixTable"]; 
     2103                                        NSString *key = [[NSString allocWithZone:nil] initWithFormat:@"%c", [memberName characterAtIndex:0]]; 
     2104                                        modes = [[prefixes objectForKey:key] unsignedLongValue]; 
     2105                                        [key release]; 
     2106                                } else { 
     2107                                        switch( [memberName characterAtIndex:0] ) { 
     2108                                                case '+': modes = MVChatRoomMemberVoicedMode; break; 
     2109                                                case '@': modes = MVChatRoomMemberOperatorMode; break; 
     2110                                                default: break; 
     2111                                        } 
    21202112                                } 
    21212113 
    2122                                 if( i ) memberName = [memberName substringFromIndex:i]; 
     2114                                if( modes != MVChatRoomMemberNoModes ) 
     2115                                        memberName = [memberName substringFromIndex:1]; 
    21232116 
    21242117                                MVChatUser *member = [self chatUserWithUniqueIdentifier:memberName]; 
    21252118                                [room _addMemberUser:member]; 
    2126                                 [room _setModes:mode forMemberUser:member]; 
     2119                                [room _setModes:modes forMemberUser:member]; 
    21272120                        } 
    21282121