clustercommandreplypacket.h

来自「lumaqq」· C头文件 代码 · 共 640 行 · 第 1/2 页

H
640
字号
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x1C
// reply code, 1 byte, 0x00, means ok
// internal id, 4 bytes
// qq number transfer to, 4 bytes
// error message
// -- encrypt end ---
// tail

///////// format 0x1D //////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x1D
// reply code, 1 byte
// internal id, 4 bytes
// --- encrypt end ---
// tail

////////// format 0x20 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x20
// reply code, 1 byte
// cluster count, 1 bytes
// internal id, 4 bytes
// external id, 4 bytes
// message setting, 1 byte
// --- encrypt end ----
// tail

////////// format 0x21 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x21
// reply code, 1 byte
// internal id, 4 bytes
// external id, 4 bytes
// ---- encrypt end ---
// tail

////////// format 0x22 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x22
// reply code, 1 byte
// unknown 1 byte
// internal id, 4 bytes
// external id, 4 bytes
// member count, 2 bytes
// --- LastTalkTime start ---
// qq number, 4 bytes
// last talk time, 2 bytes, just day number from 1970/1/1
// --- LastTalkTime end ---
// (NOTE) if more, repeat LastTalkTime
// ---- encrypt end ---
// tail

////////// format 0x30 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x30
// reply code, 1 byte
// temp cluster type, 1 byte
// parent cluster internal id, 4 bytes
// temp cluster internal id, 4 bytes
// -- encrypt end ---
// tail

////////// format 0x31 ///////////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x31
// reply code, 1 byte
// temp cluster type, 1 byte
// parent cluster internal id, 4 bytes
// temp cluster internal id, 4 bytes
// --- encrypt end ---
// tail

////////// format 0x32 ///////////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x32
// reply code, 1 byte
// temp cluster type, 1 byte
// parent cluster internal id, 4 bytes
// temp cluster internal id, 4 bytes
// --- encrypt end ---
// tail

////////// format 0x33 ///////////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x33
// reply code, 1 byte
// ------ ClusterInfo start (use readTemp) ------
// whether this cluster is a permanent, 1 byte, non-zero means true
// parent cluster internal id, 4 bytes
// internal id, 4 bytes
// creator qq number, 4 bytes
// uknown 4 bytes
// length of cluster name, 1 byte
// name
// ------- ClusterInfo end -----
// ----- Member start (use readTemp) ------
// member qq number, 4 bytes
// organization id, 1 byte, no use for temp cluster
// ----- Member end -------
// (NOTE) if more member, repeat Member
// ----- encrypt end -----
// tail

////////// format 0x34 ///////////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x34
// reply code, 1 byte
// temp cluster type, 1 byte
// parent cluster internal id, 4 bytes
// temp cluster internal id, 4 bytes
// --- encrypt end ---
// tail

///////// format 0x35 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x36
// reply code, 1 byte
// temp cluster type, 1 byte
// parent cluster internal id, 4 bytes
// temp cluster internal id, 4 bytes
// --- encrypt end ---
// tail

///////// format 0x36 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x36
// reply code, 1 byte
// sub sub command, 1 byte
// parent cluster internal id, 4 bytes
// parent cluster external id, 4 bytes
// ------ SubCluster start ------
// internal id, 4 bytes
// length of name, 1 byte
// name
// ------ SubCluster end -----
// (NOTE) if more, repeat SubCluster
// --- encrypt end ----
// tail

////////// format 0x37 ///////////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x37
// reply code, 1 byte
// temp cluster type, 1 byte
// parent cluster internal id, 4 bytes
// temp cluster internal id, 4 bytes
// a. member qq number, 4 bytes
// (NOTE) if more members, repeat (a)
// --- encrypt end ---
// tail

///////// format 0x70 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x70
// reply code, 1 byte
// internal id, 4 bytes
// --- encrypt end ----
// tail

///////// format 0x71 /////////
// header
// ----- encrypt start (session key) -----
// sub command, 1 byte, 0x71
// reply code, 1 byte
// internal id, 4 bytes
// external id, 4 bytes
// channel setting mask, 4 bytes
// (NOTE) according to the mask, following content may exist or not
// notification right, 1 byte
// default channel id, 4 bytes
// ---- encrypt end ----
// tail

@interface ClusterCommandReplyPacket : BasicInPacket {
	// common
	char m_subSubCommand;
	UInt32 m_internalId;
	UInt32 m_externalId;
	UInt32 m_parentId;
	
	// error
	NSString* m_errorMessage;
	
	// for 0x04 or 0x33
	ClusterInfo* m_info;
	NSMutableArray* m_members;
	
	// for 0x06
	NSMutableArray* m_infos;
	
	// for 0x07
	char m_authType;
	
	// for 0x0B, 0x37
	NSMutableArray* m_memberQQs;
	
	// for 0x0C
	NSMutableArray* m_memberInfos;
	
	// for 0x0F
	UInt32 m_nextStartPosition;
	NSMutableArray* m_clusterNameCards;
	
	// for 0x0F, 0x19
	UInt32 m_clusterNameCardVersionId;
	
	// for 0x10
	ClusterNameCard* m_clusterNameCard;
	
	// for 0x12
	NSMutableArray* m_organizations;
	UInt32 m_organizationVersion;
	
	// for 0x1B
	UInt32 m_clusterVersionId;
	char m_memberRole;
	
	// for 0x1B, 0x1C
	UInt32 m_memberQQ;
	
	// for 0x20
	NSMutableArray* m_messageSettings;
	
	// for 0x22
	NSMutableArray* m_lastTalkTimes;
	
	// for 0x30, 0x31, 0x32, 0x34, 0x35, 0x37
	char m_tempClusterType;
	
	// for 0x36
	NSMutableArray* m_subClusters;
	
	// for 0x71
	UInt32 m_mask;
	char m_notificationRight;
	UInt32 m_defaultChannelId;
}

// parse
- (void)parseCreate:(ByteBuffer*)buf;
- (void)parseModifyMember:(ByteBuffer*)buf;
- (void)parseModifyInfo:(ByteBuffer*)buf;
- (void)parseGetInfo:(ByteBuffer*)buf;
- (void)parseActivate:(ByteBuffer*)buf;
- (void)parseSearch:(ByteBuffer*)buf;
- (void)parseJoin:(ByteBuffer*)buf;
- (void)parseAuthorize:(ByteBuffer*)buf;
- (void)parseExit:(ByteBuffer*)buf;
- (void)parseGetOnlineMember:(ByteBuffer*)buf;
- (void)parseGetMemberInfo:(ByteBuffer*)buf;
- (void)parseModifyCard:(ByteBuffer*)buf;
- (void)parseBatchGetCard:(ByteBuffer*)buf;
- (void)parseGetCard:(ByteBuffer*)buf;
- (void)parseCommitOrganization:(ByteBuffer*)buf;
- (void)parseUpdateOrganization:(ByteBuffer*)buf;
- (void)parseCommitMemberGroup:(ByteBuffer*)buf;
- (void)parseGetVersionID:(ByteBuffer*)buf;
- (void)parseSendIMEx:(ByteBuffer*)buf;
- (void)parseSetRole:(ByteBuffer*)buf;
- (void)parseTransferRole:(ByteBuffer*)buf;
- (void)parseDismiss:(ByteBuffer*)buf;
- (void)parseTempCreate:(ByteBuffer*)buf;
- (void)parseTempModifyMember:(ByteBuffer*)buf;
- (void)parseTempExit:(ByteBuffer*)buf;
- (void)parseTempGetInfo:(ByteBuffer*)buf;
- (void)parseTempModifyInfo:(ByteBuffer*)buf;
- (void)parseTempSendIM:(ByteBuffer*)buf;
- (void)parseSubOp:(ByteBuffer*)buf;
- (void)parseTempActivate:(ByteBuffer*)buf;
- (void)parseGetMessageSetting:(ByteBuffer*)buf;
- (void)parseModifyMessageSetting:(ByteBuffer*)buf;
- (void)parseModifyChannelSetting:(ByteBuffer*)buf;
- (void)parseGetChannelSetting:(ByteBuffer*)buf;
- (void)parseGetLastTalkTime:(ByteBuffer*)buf;

// getter and setter
- (char)subSubCommand;
- (UInt32)internalId;
- (UInt32)externalId;
- (UInt32)parentId;
- (ClusterInfo*)info;
- (NSArray*)members;
- (NSString*)errorMessage;
- (UInt32)memberQQ;
- (NSArray*)memberQQs;
- (NSArray*)subClusters;
- (NSArray*)organizations;
- (UInt32)organizationVersion;
- (NSArray*)memberInfos;
- (NSArray*)infos;
- (ClusterNameCard*)clusterNameCard;
- (NSArray*)clusterNameCards;
- (UInt32)clusterNameCardVersionId;
- (UInt32)nextStartPosition;
- (NSArray*)messageSettings;
- (UInt32)mask;
- (char)notificationRight;
- (UInt32)defaultChannelId;
- (NSArray*)lastTalkTimes;
- (char)tempClusterType;
- (UInt32)clusterVersionId;
- (char)memberRole;
- (char)authType;

@end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?