| 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 | | } |
|---|
| | 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; |
|---|