1#import "JVDirectChat.h" 2#import <AppKit/NSNibDeclarations.h> 3 4@class NSTextView; 5@class WebView; 6@class NSMutableDictionary; 7@class NSMutableArray; 8@class NSData; 9@class NSString; 10@class JVChatRoomMember; 11 12extern NSString *MVChatRoomModeChangedNotification; 13 14@interface JVChatRoom : JVDirectChat { 15 @protected 16 IBOutlet NSTextView *topicLine; 17 18 NSMutableDictionary *_members; 19 NSMutableArray *_sortedMembers; 20 NSMutableSet *_nextMessageAlertMembers; 21 NSAttributedString *_topicAttributed; 22 NSData *_topic; 23 NSString *_topicAuth; 24 NSString *_key; 25 unsigned int _modes; 26 unsigned int _limit; 27 28 BOOL _kickedFromRoom; 29 BOOL _inRoom; 30 BOOL _keepAfterPart; 31 32 BOOL _initialBanlistReceived; 33} 34- (void) joined; 35- (void) parting; 36 37- (void) joinChat:(id) sender; 38- (void) partChat:(id) sender; 39 40- (BOOL) keepAfterPart; 41- (void) setKeepAfterPart:(BOOL) keep; 42 43- (void) addWhoInformationToMembers:(NSArray *) members; 44- (void) addExistingMembersToChat:(NSArray *) members; 45- (void) addMemberToChat:(NSString *) member withInformation:(NSDictionary *) info; 46- (void) removeChatMember:(NSString *) member withReason:(NSData *) reason; 47- (void) changeChatMember:(NSString *) member to:(NSString *) nick; 48 49- (void) promoteChatMember:(NSString *) member by:(NSString *) by; 50- (void) demoteChatMember:(NSString *) member by:(NSString *) by; 51- (void) voiceChatMember:(NSString *) member by:(NSString *) by; 52- (void) devoiceChatMember:(NSString *) member by:(NSString *) by; 53 54- (void) chatMember:(NSString *) member kickedBy:(NSString *) by forReason:(NSData *) reason; 55- (void) kickedFromChatBy:(NSString *) by forReason:(NSData *) reason; 56 57- (void) newBan:(NSString *) ban by:(NSString *) by; 58- (void) removedBan:(NSString *) ban by:(NSString *) by; 59- (void) banlistReceived; 60 61- (void) changeTopic:(NSData *) topic by:(NSString *) author displayChange:(BOOL) showChange; 62- (NSAttributedString *) topic; 63 64- (void) setModes:(unsigned int) modes; 65- (unsigned int) modes; 66 67- (void) setKey:(NSString *) key; 68- (NSString *) key; 69 70- (void) setLimit:(unsigned int) limit; 71- (unsigned int) limit; 72 73- (JVChatRoomMember *) chatRoomMemberWithName:(NSString *) name; 74- (void) resortMembers; 75@end 76 77@interface NSObject (MVChatPluginRoomSupport) 78- (BOOL) processUserCommand:(NSString *) command withArguments:(NSAttributedString *) arguments toRoom:(JVChatRoom *) room; 79 80- (void) processMessage:(NSMutableString *) message asAction:(BOOL) action fromMember:(JVChatRoomMember *) member inRoom:(JVChatRoom *) room; 81- (void) processMessage:(NSMutableAttributedString *) message asAction:(BOOL) action toRoom:(JVChatRoom *) room; 82 83- (void) memberJoined:(JVChatRoomMember *) member inRoom:(JVChatRoom *) room; 84- (void) memberParted:(JVChatRoomMember *) member fromRoom:(JVChatRoom *) room forReason:(NSString *) reason; 85- (void) memberKicked:(JVChatRoomMember *) member fromRoom:(JVChatRoom *) room by:(JVChatRoomMember *) by forReason:(NSString *) reason; 86 87- (void) memberPromoted:(JVChatRoomMember *) member inRoom:(JVChatRoom *) room by:(JVChatRoomMember *) by; 88- (void) memberDemoted:(JVChatRoomMember *) member inRoom:(JVChatRoom *) room by:(JVChatRoomMember *) by; 89- (void) memberVoiced:(JVChatRoomMember *) member inRoom:(JVChatRoom *) room by:(JVChatRoomMember *) by; 90- (void) memberDevoiced:(JVChatRoomMember *) member inRoom:(JVChatRoom *) room by:(JVChatRoomMember *) by; 91 92- (void) joinedRoom:(JVChatRoom *) room; 93- (void) partingFromRoom:(JVChatRoom *) room; 94- (void) kickedFromRoom:(JVChatRoom *) room by:(JVChatRoomMember *) by forReason:(NSString *) reason; 95 96- (void) topicChangedTo:(NSString *) topic inRoom:(JVChatRoom *) room by:(JVChatRoomMember *) member; 97@end