Changeset 3665
- Timestamp:
- 06/25/07 23:09:47 (1 year ago)
- Files:
-
- trunk/Chat Core/MVIRCChatConnection.m (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Chat Core/MVIRCChatConnection.m
r3662 r3665 1414 1414 if( [modesTable count] ) [_serverInformation setObject:modesTable forKey:@"roomMemberModeTable"]; 1415 1415 [_serverInformation setObject:[NSCharacterSet characterSetWithCharactersInString:modes] forKey:@"roomMemberModes"]; 1416 1417 NSString *prefixes = [feature substringFromIndex:[scanner scanLocation]]; 1418 if( [prefixes length] ) { 1419 NSMutableDictionary *prefixTable = [[NSMutableDictionary allocWithZone:nil] initWithCapacity:[modes length]]; 1420 unsigned length = [prefixes length]; 1421 unsigned i = 0; 1422 for( i = 0; i < length; i++ ) { 1423 MVChatRoomMemberMode mode = MVChatRoomMemberNoModes; 1424 switch( [prefixes characterAtIndex:i] ) { 1425 case '+': mode = MVChatRoomMemberVoicedMode; break; 1426 case '%': mode = MVChatRoomMemberHalfOperatorMode; break; 1427 case '@': mode = MVChatRoomMemberOperatorMode; break; 1428 case '&': mode = MVChatRoomMemberAdministratorMode; break; 1429 case '!': mode = MVChatRoomMemberAdministratorMode; break; 1430 case '*': mode = MVChatRoomMemberAdministratorMode; break; 1431 case '~': mode = MVChatRoomMemberFounderMode; break; 1432 case '.': mode = MVChatRoomMemberFounderMode; break; 1433 default: break; 1434 } 1435 1436 if( mode != MVChatRoomMemberNoModes ) { 1437 NSString *key = [[NSString allocWithZone:nil] initWithFormat:@"%c", [prefixes characterAtIndex:i]]; 1438 [prefixTable setObject:[NSNumber numberWithUnsignedLong:mode] forKey:key]; 1439 [key release]; 1440 } 1416 } 1417 1418 NSString *prefixes = [feature substringFromIndex:[scanner scanLocation]]; 1419 if( [prefixes length] ) { 1420 NSMutableDictionary *prefixTable = [[NSMutableDictionary allocWithZone:nil] initWithCapacity:[modes length]]; 1421 unsigned length = [prefixes length]; 1422 unsigned i = 0; 1423 for( i = 0; i < length; i++ ) { 1424 MVChatRoomMemberMode mode = MVChatRoomMemberNoModes; 1425 switch( [prefixes characterAtIndex:i] ) { 1426 case '+': mode = MVChatRoomMemberVoicedMode; break; 1427 case '%': mode = MVChatRoomMemberHalfOperatorMode; break; 1428 case '@': mode = MVChatRoomMemberOperatorMode; break; 1429 case '&': mode = MVChatRoomMemberAdministratorMode; break; 1430 case '!': mode = MVChatRoomMemberAdministratorMode; break; 1431 case '*': mode = MVChatRoomMemberAdministratorMode; break; 1432 case '~': mode = MVChatRoomMemberFounderMode; break; 1433 case '.': mode = MVChatRoomMemberFounderMode; break; 1434 default: break; 1441 1435 } 1442 1436 1443 if( [prefixTable count] ) [_serverInformation setObject:prefixTable forKey:@"roomMemberPrefixTable"]; 1444 [_serverInformation setObject:[NSCharacterSet characterSetWithCharactersInString:prefixes] forKey:@"roomMemberPrefixes"]; 1437 if( mode != MVChatRoomMemberNoModes ) { 1438 NSString *key = [[NSString allocWithZone:nil] initWithFormat:@"%c", [prefixes characterAtIndex:i]]; 1439 [prefixTable setObject:[NSNumber numberWithUnsignedLong:mode] forKey:key]; 1440 [key release]; 1441 } 1445 1442 } 1443 1444 if( [prefixTable count] ) [_serverInformation setObject:prefixTable forKey:@"roomMemberPrefixTable"]; 1445 [_serverInformation setObject:[NSCharacterSet characterSetWithCharactersInString:prefixes] forKey:@"roomMemberPrefixes"]; 1446 1446 } 1447 1447 } … … 2221 2221 break; 2222 2222 default: { 2223 if( _serverInformation ) {2224 NSMutableDictionary *supportedModes = [_serverInformation objectForKey:@"roomMemberModeTable"];2223 NSMutableDictionary *supportedModes = [_serverInformation objectForKey:@"roomMemberModeTable"]; 2224 if( [supportedModes count] ) { 2225 2225 value = [[supportedModes objectForKey:[NSString stringWithFormat:@"%c", chr]] unsignedLongValue]; 2226 2226 if( value ) goto queue; … … 2479 2479 2480 2480 MVChatRoomMemberMode modes = MVChatRoomMemberNoModes; 2481 if( _serverInformation ) {2482 NSMutableDictionary *prefixes = [_serverInformation objectForKey:@"roomMemberPrefixTable"];2481 NSMutableDictionary *prefixes = [_serverInformation objectForKey:@"roomMemberPrefixTable"]; 2482 if( [prefixes count] ) { 2483 2483 NSString *key = [[NSString allocWithZone:nil] initWithFormat:@"%c", [memberName characterAtIndex:0]]; 2484 2484 modes = [[prefixes objectForKey:key] unsignedLongValue];
