|
JML | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.jqql.packets.Packet
net.sf.jqql.packets.InPacket
net.sf.jqql.packets.BasicInPacket
net.sf.jqql.packets.in.ClusterCommandReplyPacket
public class ClusterCommandReplyPacket
cluster command reply packet, which format is different according to different subcommand type. crtate cluster reply packet, format: 1. head 2. command type, 1 byte, create cluster is 0x1 3. reply code, 1 byte, sucess is 0x0, if success, format behind is: 1. cluster internal ID, 4 byte. If it's 0, mean creation fails 2. cluster external ID, 4 byte. If it's 0, mean creation fails 4. If reply code is not 0, the behind is erro info 5. tail 群命令的回å¤åŒ…ï¼Œæ ¹æ®ä¸åŒçš„åå‘½ä»¤ç±»åž‹æ ¼å¼æœ‰æ‰€ä¸åŒï¼š 创建群的回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,1å—节,创建群是0x1 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0,如果æˆåŠŸåˆ™åŽé¢ä¸º 1. 群内部ID,4å—节,如果为0,表示创建失败 2. 群外部ID,4å—节,如果为0,表示创建失败 4. 如果回å¤ç ä¸ä¸º0,则åŽé¢ä¸ºå‡ºé”™ä¿¡æ¯ 5. 尾部 create temp cluster reply packet 1. head 2. command type, 1 byte, 0x30 3. reply code, 1 byte 4. temp cluster type, 1 byte, 0x01 is mutil-persio dialog, 0x02 is discussion group 5. parent cluster internal ID, 4 byte 6. temp cluster created internal ID, 4 byte 7. tail 创建临时群的回å¤åŒ… 1. 头部 2. 命令类型,1å—节,0x30 3. 回å¤ç ,1å—节 4. 临时群类型,1å—节,0x01是多人对è¯ï¼Œ0x02是讨论组 5. 父群内部ID,4å—节 6. 创建的临时群的内部ID,4å—节 7. 尾部 activate cluster reply packet, format is: 1. head 2. command type, activate is 0x5 3. reply code, 1 byte, success is 0x0 4. cluster interal ID 5. tail 激活群的回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,激活是0x5 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群的内部ID 5. 尾部 get cluster info reply packet, format: 1. head 2. command type, 1 byte, get cluster info is 0x4 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte 5. cluster external ID, 4 byte 6. cluster type, 1 byte 7. unknown 4 byte 8. creator's QQ number, 4 byte 9. authentication type, 1 byte 10. cluster category, 4 byte, category of 2004, only has 4 subcategory 11. unknown 2 byte 12. cluster category ID, 4 byte, this is category of 2005, whick at most has 3 layer. Each category has a unique id 13. unknown 2 byte 14. unkonw 1 byte 15. cluster version id, 4 byte 16. cluster name length, 1 byte 17. cluster name 18. unkown 2 byte 19. cluster declaration length, 1 byte 20. cluster declaration 21. cluster description length, 1 byte 22. cluster description 23. cluster member's QQ number, 4 byte 24. sequence of organization members belong to, 1 byte. Organization sequence begins from 1. If it's 0, mean not in some organization. a member belongs to only one organization, not like discussion group. discussion group is like the cluster in a cluster,organization is the classification for member, not a cluster 25. cluser member type, like admin, etc, 1 byte 26. If there are more member, repeat part 23 to 25 27. tail 得到群信æ¯çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,1å—èŠ‚ï¼Œå¾—åˆ°ç¾¤ä¿¡æ¯æ˜¯0x4 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节 5. 群外部ID,4å—节 6. 群类型,1å—节 7. 未知的4å—节 8. 创建者QQå·ï¼Œ4å—节 9. 认è¯ç±»åž‹ï¼Œ1å—节 10. 群分类,4å—节,这是2004的分类法。2004åªæœ‰4个分类 11. 未知的2å—节 12. 群分类ID,4å—节,这是2005的分类法,2005的分类最多有三层。æ¯ä¸ªåˆ†ç±»æœ‰ä¸€ä¸ªå”¯ä¸€çš„id 13. 未知的2å—节 14. 未知的1å—节 15. 群version id, 4å—节 16. 群å称长度,1å—节 17. 群åç§° 18. 未知的两å—节,全0 19. 群声明长度,1å—节 20. 群声明 21. 群æè¿°é•¿åº¦ï¼Œ1å—节 22. 群æè¿° 23. ç¾¤ä¸æˆå‘˜çš„QQå·ï¼Œ4å—节 24. æˆå‘˜æ‰€å±žç»„织的åºå·ï¼Œ1å—节,组织åºå·ä»Ž1开始,如果为0,表示其ä¸åœ¨æŸä¸ªç»„织ä¸ï¼Œ 一个æˆå‘˜åªèƒ½åœ¨ä¸€ä¸ªç»„织里é¢ï¼Œç»„织和讨论组ä¸åŒï¼Œè®¨è®ºç»„å¯ä»¥çœ‹æˆæ˜¯ç¾¤ä¸ç¾¤ï¼Œç»„织 åªæ˜¯ç¾¤æˆå‘˜çš„åˆ†ç±»è€Œå·²ï¼Œå®ƒå¹¶ä¸æ˜¯ä¸€ä¸ªç¾¤ 25. 群æˆå‘˜çš„ç±»åž‹ï¼Œæ˜¯ä¸æ˜¯ç®¡ç†å‘˜ä¹‹ç±»çš„,1å—节 26. 如果å˜åœ¨æ›´å¤šæˆå‘˜ï¼Œé‡å¤23-25部分 27. 尾部 get temp cluster reply packet, format: 1. head 2 command type, 1 byte, 0x33 3. reply code, 1 byte, success is 0x00 4. cluster type, 1 byte 5. parent internal ID, 4 byte 6. temp cluster internal ID, 4 byte 7. creator's QQ number, 4 byte 8. unkown 4 byte, all 0 9. cluster name length, 1 byte 10. cluster name 11. cluster member's QQ number, 4 byte 12. sequence of organization member belongs to, 1 byte. For temp cluster, there's no cluster organization, so the field is useless 13. If there are more members, repeat par 11-12 14. tail. 得到临时群信æ¯çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸º 1. 头部 2. 命令类型,1å—节,0x33 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x00 4. 群类型,1å—节 5. 父群内部ID,4å—节 6. 临时群内部ID,4å—节 7. 创建者QQå·ï¼Œ4å—节 8. 未知的4å—节,全0 9. 群å称长度,1å—节 10. 群åç§° 11. ç¾¤ä¸æˆå‘˜çš„QQå·ï¼Œ4å—节 12. æˆå‘˜æ‰€å±žç»„织的åºå·ï¼Œ1å—节。对于临时群æ¥è¯´ï¼Œæ²¡æœ‰ç¾¤å†…ç»„ç»‡çš„æ¦‚å¿µï¼Œæ‰€ä»¥è¿™ä¸ªå—æ®µæ— 用 13. 如果有更多æˆå‘˜ï¼Œé‡å¤11-12部分 14. 尾部 exit cluster reply, format: 1. head 2. command type, 1 byte, exit is 0x9 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte, shoud not be 0 5. tail 退出群的回å¤ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,1å—节,退出是0x9 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节,应该是个éž0值 5. 尾部 dimiss cluster reply 1. head 2. subcommand, 1 byte, 0x1D 3. reply code, 1 byte 4. cluster internal id, 4 byte 5. tail è§£æ•£ç¾¤çš„å›žå¤ 1. 头部 2. å命令,1å—节,0x1D 3. 回å¤ç ,1å—节 4. 群内部id,4å—节 5. 尾部 apply member info reply packet, format: 1. head 2. command type, 1 byte, apply member info is 0x0C 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte 5. member QQ number, 4 byte 6. head number, 2 byte 7 . age, 1 byte 8. gender, 1 byte 9. nick name length, 1 byte 10. nick name 11. unknown 2 byte 12. extend flag, 1 byte 13. general flag, 1 byte 14. If there are more member, repeat part 5-13, part 5-13 in fact is the structure of QQFriend 15. tail 请求æˆå‘˜ä¿¡æ¯çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸º 1. 头部 2. 命令类型,1å—节,请求æˆå‘˜ä¿¡æ¯æ˜¯0x0C 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节 5. æˆå‘˜QQå·ï¼Œ4å—节 6. 头åƒå·ï¼Œ2å—节 7. 年龄,1å—节 8. 性别,1å—节 9. 昵称长度,1å—节 10. 昵称 11. 未知的2å—节 12. æ‰©å±•æ ‡å¿—ï¼Œ1å—节 13. é€šç”¨æ ‡å¿—ï¼Œ1å—节 14. 如果有更多æˆå‘˜ï¼Œé‡å¤5-13部分,5-13部分其实也就是QQFriend结构 15. 尾部 get online member reply packet, format is : 1. head 2. command type, 1 byte, apply member info is 0x0B 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte 5. unknown byte, 0x3C 6. online member 's QQ number 7. If there are more online member, repeat 6 8. tail 得到在线æˆå‘˜çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,1å—节,请求æˆå‘˜ä¿¡æ¯æ˜¯0x0B 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节 5. 未知å—节,0x3C 6. 在线æˆå‘˜çš„qqå· 7. 如果有更多在线æˆå‘˜ï¼Œé‡å¤6 8. 尾部 activate temp cluster reply packet 1. head 2. command type, 1 byte, 0x37 3. reply code, 1 byte 4. temp cluster type, 1 byte 5. parent internal ID, 4 byte 6. temp cluster internal ID, 4 byte 7. member's QQ number, 4 byte 8. If there are more member, repeat part 7 9 . tail 激活临时群的回å¤åŒ… 1. 头部 2. 命令类型,1å—节,0x37 3. 回å¤ç ,1å—节 4. 临时群类型,1å—节 5. 父群内部ID,4å—节 6. 临时群内部ID,4å—节 7. æˆå‘˜QQå·ï¼Œ4å—节 8. 如果有更多æˆå‘˜ï¼Œé‡å¤7部分 9. 尾部 apply to join cluster reply packet, format: 1. head 2. command type, 1 byte, apply member info is 0x07 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte 5. reply code, this code is fine-grain, specific to join request reply, 1 byte 6. tail è¯·æ±‚åŠ å…¥ç¾¤çš„å›žå¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,1å—节,请求æˆå‘˜ä¿¡æ¯æ˜¯0x07 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节 5. 回å¤ç ,这个回å¤ç 是比较细的特定于join请求的回å¤ï¼Œ1å—节 6. 尾部 apply to join cluster authenticate info reply packet, not usefull, indicates that ther server receive, format: 1. head 2. command type, here is 0x8 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte, If it's 0, means error 5. tail è¯·æ±‚åŠ å…¥ç¾¤çš„è®¤è¯ä¿¡æ¯å›žå¤åŒ…,没什么太大用处,就是表示æœåŠ¡å™¨æ”¶åˆ°äº†ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,这里是0x8 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节,如果为0表示出错 5. 尾部 modify cluster info reply packet, format is: 1. head 2. command type, here is 0x03 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte 5. tail 修改群信æ¯çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,这里是0x03 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节 5. 尾部 modify cluster member reply packet, format: 1. head 2. command type, hre is 0x03 3. reply code, 1 byte, success is 0x0 4. cluster internal ID, 4 byte 5. tail 修改群æˆå‘˜çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,这里是0x03 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. 群内部ID,4å—节 5. 尾部 search cluster reply packet, format: 1. head 2. command type, here is 0x06 3. reply code, 1 byte, success is 0x0 4. search manner, 1 byte 5. cluster internal ID, 4 byte 6. cluster type, 1 byte 7. cluster type, 1 byte 8. unknown 4 byte 9. cluster creator, 4 byte 10. cluster category, 4 byte, category of 2004, which has only 4 subcategory 11. cluster category, 4 byte, category of 2005 12. unknown 2 byte 13. cluster name length, 1 byte 14. cluster name 15. unknown 2 byte 16. authentication type, 1 byte 17. cluster introduction length, 1 byte 18. cluster introduction 19. tail æœç´¢ç¾¤çš„回å¤åŒ…ï¼Œæ ¼å¼ä¸ºï¼š 1. 头部 2. 命令类型,这里是0x06 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x0 4. æœç´¢æ–¹å¼ï¼Œ1å—节 5. 群内部ID,4å—节 6. 群外部ID,4å—节 7. 群类型,1å—节 8. 未知的4å—节 9. 群创建者,4å—节 10. 群分类,4å—节,这是2004的分类法。2004åªæœ‰4个分类 11. 群分类,4å—节,这是2005分类法 12. 未知的2å—节 13. 群å称长度,1å—节 14. 群åç§° 15. 未知的两å—节 16. 认è¯ç±»åž‹ï¼Œ1å—节 17. 群简介长度,1å—节 18. 群简介 19. 尾部 send cluster info and send extend cluster info reply packet 1. head 2. command type, 1 byte, 0x0A 3. reply code, 1 byte 4. cluster internal id, 4 byte 5. tail å‘é€ç¾¤ä¿¡æ¯å’Œå‘逿‰©å±•群信æ¯çš„回å¤åŒ… 1. 头部 2. 命令类型,1å—节,0x0A 3. 回å¤ç ,1å—节 4. 群内部id,4å—节 5. 尾部 send temp cluster info reply packet 1. head 2. command type, 1 byte, 0x35 3. reply code, 1 byte 4. temp cluster type, 1 byte 5. parent cluster internal ID, 4 byte 6. temp cluster internal ID, 4 byte 7. tail å‘é€ä¸´æ—¶ç¾¤ä¿¡æ¯çš„回å¤åŒ… 1. 头部 2. 命令类型,1å—节,0x35 3. 回å¤ç ,1å—节 4. 临时群类型,1å—节 5. 父群内部ID,4å—节 6. 临时群内部ID,4å—节 7. 尾部 exit temp cluster reply packet 1. head 2. command type, 1 byte, 0x32 3. reply code, 1 byte 4. temp cluster type, 1 byte 5. parent cluster ID, 4 byte 6. temp cluster internal ID, 4 byte 7 . tail 退出临时群的回å¤åŒ… 1. 头部 2. 命令类型,1å—节,0x32 3. 回å¤ç ,1å—节 4. 临时群类型,1å—节 5. 父群内部ID,4å—节 6. 临时群内部ID,4å—节 7. 尾部 modify temp cluster info reply packet 1. head 2. command type, here is 0x34 3. reply code, 1 byte, success is 0x00 4. temp cluster type, 1 byte 5. parent internal ID, 4 byte 6. temp cluster ID, 4 byte 7. tail 修改临时群信æ¯çš„回å¤åŒ… 1. 头部 2. 命令类型,这里是0x34 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x00 4. 临时群类型,1å—节 5. 父群内部ID,4å—节 6. 临时群内部ID,4å—节 7. 尾部 modified temp cluster member reply packet 1. head 2. command type, hre is 0x31 3. reply code, 1 byte, success is 0x00 4. temp cluster type, 1 byte 5. parent internal ID, 4 byte 6. temp cluster internal ID, 4 byte 7. operate type, 1 byte, 0x01 is add, 0x02 is remove 8. operate cluster member's QQ number, 4 byte 9. If there are more member, repeat part 8. 10. tail 修改临时群æˆå‘˜çš„回å¤åŒ… 1. 头部 2. 命令类型,这里是0x31 3. 回å¤ç ,1å—节,æˆåŠŸæ˜¯0x00 4. 临时群类型,1å—节 5. 父群内部ID,4å—节 6. 临时群内部ID,4å—节 7. æ“作方å¼ï¼Œ1å—节,0x01æ˜¯æ·»åŠ ï¼Œ0x02æ˜¯åˆ é™¤ 8. æ“作的æˆå‘˜QQå·ï¼Œ4å—节 9. 如果有更多æˆå‘˜ï¼Œé‡å¤8部分 10. 尾部 discussion group operate reply packet, when subcommand type is 0x02(get discussion group list) 1. head 2. command type, 0x36 3. reply code, 1 byte 4. sub command type, 1 byte, 0x02 5. cluster internal id, 4 byte 6. cluster external id, 4 byte 7. discussion group id 8. discussion group name byte length, 1 byte 9. discussion group name 10. If there are more discussion group, repeat part 7-9 11. tail 讨论组æ“作的回å¤åŒ…,å命令类型为0x02时(得到讨论组列表) 1. 头部 2. 命令类型,0x36 3. 回å¤ç ,1å—节 4. å命令类型,1å—节,0x02 5. 群内部id,4å—节 6. 群外部id,4å—节 7. 讨论组id,4å—节 8. 讨论组åç§°å—节长度,1å—节 9. 讨论组åç§° 10. 如果有更多讨论组,é‡å¤7-9部分 11. 尾部 discussion group operate reply packet, when sub command type is 0x01(get multi-person dialog list) 1. head 2. command type, 0x36 3. reply code, 1 byte 4. sub command type, 1 byte, 0x01 5. cluster internal id, 4 byte, all 0 6. cluster external id, 4 byte, all 0 7. discussion group id, , 4 byte 8. byte length of discussion group name, 1 byte 9. discussion group name 10. If there are more discussion group, repeat part 7-9 11. tail 讨论组æ“作的回å¤åŒ…,å命令类型为0x01时(得到多人对è¯åˆ—表) 1. 头部 2. 命令类型,0x36 3. 回å¤ç ,1å—节 4. å命令类型,1å—节,0x01 5. 群内部id,4å—节,为0 6. 群外部id,4å—节,为0 7. 讨论组id,4å—节 8. 讨论组åç§°å—节长度,1å—节 9. 讨论组åç§° 10. 如果有更多讨论组,é‡å¤7-9部分 11. 尾部 update organization architeture 1. head 2. command, 1 byte, 0x12 3. reply code, 1 byte, 0x00 is success 4. cluster interal ID, 4 byte 5. unknown 1 byte, 0x00 6. organization Version ID, 4 byte, mean the same as cluster's 7. organization count, 1 byte 8. organization sequence, 1 byte, begin with 1 9. organization layer relationship, 4 byte. QQ's organization supports at most 4 layer, 4 byte totaly 32 bit. The first layer use 8 bits, the later use 6 bit, 6 bit is reserved. For example, If the field is in binary like: 0000 0001 0000 1100 0101 0010 0100 0000 we get that, the leading 8 bit : 0000 0001 is 1, and then 0000 11 is 3, 00 0101 is 5, 0010 01 is 9 the 6 bits left is not used. So this organization posits is in layer 4, it's the 9th sub organization of its parent node. Its parent node is the 5th sub organization of its parent's parent node which is the 3rd organization of its parent's parent's parent node which is the first organization of the cluster. We should make it clear that, organization sequence is different from layer number, and they are not related. At present, the relationship is maintained by us to search organization. 10. organization name byte length, 2 byte 11. organization name 12. If there are more organization, repeat part 8-11 13. tail 从æœåŠ¡å™¨æ›´æ–°ç»„ç»‡æž¶æž„çš„å›žå¤åŒ… 1. 头部 2. 命令,1å—节,0x12 3. 回å¤ç ,1å—节,0x00为æˆåŠŸ 4. 群内部ID,4å—节 5. 未知1å—节,0x00 6. 组织Version ID,4å—节,æ„义和群的Version ID相åŒã€‚ å¦‚æžœè¿™ä¸ªå—æ®µä¸º0,表示没有组织,并且7-12部分ä¸å˜åœ¨ 7. 组织个数,1å—节 8. 组织åºå·ï¼Œ1å—节,从1开始 9. 组织的层次关系,4å—节。QQ的组织最多支æŒ4层,4个å—节一共32bit,第一层用了8ä½ï¼Œ åŽé¢çš„层用了6ä½ï¼Œæ‰€ä»¥è¿˜æœ‰6使˜¯ä¿ç•™æœªç”¨çš„。举个例åè¯´æ˜Žä¸€ä¸‹è¿™ä¸ªå—æ®µçš„å…·ä½“æ ¼å¼ï¼Œ å‡å¦‚è¿™ä¸ªå—æ®µçš„二进制表示为 0000 0001 0000 1100 0101 0010 0100 0000 那么得知,å‰8ä½0000 0001,值为1 ç„¶åŽæ˜¯0000 11,值为3 ç„¶åŽæ˜¯00 0101,值为5 ç„¶åŽåŽ0010 01,值为9, 最åŽ6ä½ä¿ç•™æœªç”¨ï¼Œ 所以这个组织ä½äºŽç¬¬å››å±‚,它是父节点的第9个å组织,它的父节点是祖父节点的第5个å组织, 它的祖父节点是曾祖父节点的第3个组织,它的曾祖父节点是群的第一个组织。 我们è¦åˆ†æ¸…楚的是,组织的åºå·å’Œå±‚次å·å¹¶ä¸æ˜¯ä¸€æ ·çš„ï¼Œä¹Ÿä¸æ˜¯æœ‰å¯¹åº”å…³ç³»çš„ã€‚æ‰€ä»¥ç›®å‰æ¥çœ‹ï¼Œ è¿™ä¸ªå…³ç³»éœ€è¦æˆ‘们自己维护,以便查找组织 10. 组织åç§°å—节长度,1å—节 11. 组织åç§° 12. 如果有更多组织,é‡å¤8-11部分 13. 尾部 commit organization architeture reply packet 1. head 2. command ,1 byte, 0x11 3. reply code, 1 byte, 0x00 is success 4. cluster internal ID, 4 byte 5. organization Version ID, 4 byte 6. organization count, 2 byte 7. organization sequence, 1 byte 8. If there are more organization, repeat part 7 9. tail æäº¤ç»„织架构的回å¤åŒ… 1. 头部 2. 命令,1å—节,0x11 3. 回å¤ç ,1å—节,0x00为æˆåŠŸ 4. 群内部ID,4å—节 5. 组织Version ID,4å—节 6. 组织个数,2å—节 7. 组织åºå·ï¼Œ1å—节 8. 如果有更多组织,é‡å¤7部分 9. 尾部 commit member group info reply packet 1. head 2. command, 1 byte, 0x13 3. reply code, 1 byte, 0x00 is success 4. cluster internal ID, 4 byte 5. member group info version id, 4 byte 6. tail æäº¤æˆå‘˜åˆ†ç»„情况的回å¤åŒ… 1. 头部 2. 命令,1å—节,0x13 3. 回å¤ç ,1å—节,0x00为æˆåŠŸ 4. 群内部ID,4å—节 5. æˆå‘˜åˆ†ç»„情况version id,4å—节 6. 尾部 modify cluster card reply packet 1. head 2. command , 1 byte, 0x0E 3. reply code, 1 byte, 0x00 is success 4. cluster internal ID, 4 byte 5. your QQ number, 4 byte 修改群å片回å¤åŒ… 1. 头部 2. 命令, 1å—节,0x0E 3. 回å¤ç ,1å—节,0x00为æˆåŠŸ 4. 群内部ID,4å—节 5. 自己的QQå·ï¼Œ4å—节 get cluster card real name in batch reply packet 1. head 2. command, 1 byte, 0x0F 3. reply code, 1 byte, 0x00 is success 4. cluster internal ID, 4 byte 5. cluster card version id, 4 byte 6. Next request packet start position, 4 byte. If the field is 0, mean all the card are got. If not 0, mean the intial record count, like total 10 pieces of card info, got 6 six, 4 left. The field is 0x00000006, for next sequence is 6(begin with 0) 7. member QQ number, 4 byte 8. read name length, 1 byte 9. real name 10. if there are more members, repeat part 7-9. 11. tail 批é‡å¾—到群å片真实姓å的回å¤åŒ… 1. 头部 2. 命令, 1å—节,0x0F 3. 回å¤ç ,1å—节,0x00为æˆåŠŸ 4. 群内部ID,4å—节 5. 群å片Version id, 4å—节 6. 下一个请求包的起始ä½ç½®ï¼Œ4å—èŠ‚ã€‚è¿™ä¸ªå—æ®µå¦‚果为0,表示所有å片都已ç»å¾—到 如果ä¸ä¸º0,表示起始记录数,比如一共有10æ¡å片信æ¯ï¼Œè¿™æ¬¡å¾—到了6æ¡ï¼Œè¿˜å‰© 4æ¡ï¼Œé‚£ä¹ˆè¿™ä¸ªå—段就是0x00000006ï¼Œå› ä¸ºä¸‹ä¸€æ¡çš„åºå·æ˜¯6(从0开始) 7. æˆå‘˜QQå·ï¼Œ4å—节 8. 真实姓å长度,1å—节 9. 真实姓å 10. 如果有更多æˆå‘˜ï¼Œé‡å¤7-9部分 11. 尾部 get single member's all cluster card info reply packet 1. head 2. command, 1 byte, 0x0F 3. reply code, 1 byte, 0x00 means success 4. cluster internal ID, 4 byte 5. member QQ number, 4 byte 6. real name length, 1 byte 7. real name 8. gender index, 1 byte, gender order is 'male', 'female', '-', so male is 0x00, and so on. 9 .telephone string length, 1 byte 10. telephone in string form 11. email length, 1 byte 12. email 13. note length, 1 byte 14. note 15. tail 得到å•个æˆå‘˜å…¨éƒ¨ç¾¤å片信æ¯çš„回å¤åŒ… 1. 头部 2. 命令, 1å—节,0x0F 3. 回å¤ç ,1å—节,0x00为æˆåŠŸ 4. 群内部ID,4å—节 5. æˆå‘˜QQå·ï¼Œ4å—节 6. 真实姓å长度,1å—节 7. 真实姓å 8. 性别索引,1å—èŠ‚ï¼Œæ€§åˆ«çš„é¡ºåºæ˜¯'ç”·', '女', '-',所以男是0x00,ç‰ç‰ 9. 电è¯å—符串长度,1å—节 10. 电è¯çš„å—符串表示 11. 电å邮件长度,1å—节 12. 电å邮件 13. 备注长度,1å—节 14. 备注内容 15. 尾部 set role reply packet 1. head 2. command , 1 byte, 0x18 3. reply code, 1 byte 4. cluster internal ID, 4 byte 5. cluster version id, 4 byte 6. QQ number set, 4 byte 7. member role after set, 1 byte 8. tail 设置角色的回å¤åŒ… 1. 头部 2. 命令,1å—节,0x1B 3. 回å¤ç ,1å—节 4. 群内部ID,4å—节 5. 群version id, 4å—节 6. 被设置的QQå·ï¼Œ4å—节 7. æ“ä½œä¹‹åŽæˆå‘˜çš„角色,1å—节 8. 尾部 transfer role reply packet 1. head 2. command, 1 byte, 0x1B 3. reply code, 1 byte 4. cluster internal ID, 4 byte 5. QQ number transfered to, 4 byte 6. according to different reply code: i. when part 3 is 0x00, it's cluster version id, 4 byte ii, part 3 is other value, error info 7. tail 转让角色的回å¤åŒ… 1. 头部 2. 命令,1å—节,0x1B 3. 回å¤ç ,1å—节 4. 群内部ID,4å—节 5. 转让到的QQå·ï¼Œ4å—节 6. æ ¹æ®å›žå¤ç ä¸åŒï¼Œæœ‰: i. 3部分为0x00时,为群version id,4å—节 ii. 3éƒ¨åˆ†ä¸ºå…¶ä»–å€¼æ—¶ï¼Œä¸ºé”™è¯¯ä¿¡æ¯ 7. 尾部
Field Summary | |
---|---|
Card |
card
|
List<CardStub> |
cardStubs
|
int |
cardVersionId
|
int |
clusterId
群内部id |
List<ClusterInfo> |
clusters
æœç´¢åˆ°çš„群,类型是ClusterInfo |
String |
errorMessage
如果replyCode䏿˜¯okï¼Œé‚£ä¹ˆè¿™ä¸ªå—æ®µæœ‰æ•ˆï¼Œè¡¨ç¤ºå‡ºé”™ä¿¡æ¯ |
int |
externalId
群外部id |
ClusterInfo |
info
ç¾¤ä¿¡æ¯ |
byte |
joinReply
åŠ å…¥ç¾¤çš„å›žå¤ |
List<QQFriend> |
memberInfos
包å«äº†ç¾¤æˆå‘˜ä¿¡æ¯çš„åˆ—è¡¨ï¼Œå…ƒç´ ç±»åž‹æ˜¯QQFriend |
int |
memberOrganziationVersionId
|
int |
memberQQ
如果æŸä¸ªåŒ…是对å•个群æˆå‘˜è¿›è¡Œæ“ä½œï¼Œåˆ™ä½¿ç”¨è¿™ä¸ªå—æ®µä¿å˜QQå· |
List<Member> |
members
群æˆå‘˜åˆ—è¡¨ï¼Œå…ƒç´ ç±»åž‹ä¸ºInteger,包å«äº†æˆå‘˜çš„QQå· |
int |
nextStart
|
List<Integer> |
onlineMembers
包å«äº†åœ¨çº¿æˆå‘˜åˆ—è¡¨ï¼Œå…ƒç´ ç±»åž‹æ˜¯Integer,表示æˆå‘˜çš„QQå· |
int |
organizationCount
|
List<QQOrganization> |
organizations
|
int |
organizationVersionId
|
int |
parentClusterId
父群内部ID |
byte |
replyCode
回å¤ç |
byte |
role
|
byte |
searchType
æœç´¢ç±»åž‹ |
byte |
subClusterOpByte
å群æ“作å类型 |
List<SimpleClusterInfo> |
subClusters
å群列表,å¯èƒ½æ˜¯è®¨è®ºç»„也å¯èƒ½æ˜¯å¤šäººå¯¹è¯ |
byte |
subCommand
å命令 |
byte |
type
群类型 |
int |
versionId
ç¾¤ç‰ˆæœ¬å· |
Fields inherited from class net.sf.jqql.packets.Packet |
---|
bodyBuf, bodyDecrypted, command, crypter, ds, duplicated, header, log, sequence, source, user |
Constructor Summary | |
---|---|
ClusterCommandReplyPacket(ByteBuffer buf,
int length,
QQUser user)
constructor æž„é€ å‡½æ•° |
Method Summary | |
---|---|
String |
getPacketName()
|
protected void |
parseBody(ByteBuffer buf)
parse packet body, from begin position of buf è§£æžåŒ…体,从buf的开头ä½ç½®è§£æžèµ· |
Methods inherited from class net.sf.jqql.packets.BasicInPacket |
---|
decryptBody, encryptBody, getBodyBytes, getCryptographStart, getFamily, getHeadLength, getLength, getTailLength, parseHeader, parseTail, putBody, putHead, putTail, toString |
Methods inherited from class net.sf.jqql.packets.InPacket |
---|
validateHeader |
Methods inherited from class net.sf.jqql.packets.Packet |
---|
dump, equals, getCommand, getHeader, getSequence, getSource, hash, hashCode, isDuplicated, setDuplicated, setHeader, setSequence |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public byte subCommand
public byte replyCode
public int clusterId
public int externalId
public byte type
public int parentClusterId
public int versionId
public int memberQQ
public String errorMessage
public ClusterInfo info
public List<Member> members
public List<QQFriend> memberInfos
public List<Integer> onlineMembers
public List<SimpleClusterInfo> subClusters
public byte subClusterOpByte
public byte joinReply
public byte searchType
public List<ClusterInfo> clusters
public int organizationVersionId
public int organizationCount
public List<QQOrganization> organizations
public int memberOrganziationVersionId
public List<CardStub> cardStubs
public int cardVersionId
public int nextStart
public Card card
public byte role
Constructor Detail |
---|
public ClusterCommandReplyPacket(ByteBuffer buf, int length, QQUser user) throws PacketParseException
buf
- bufferlength
- packet lengthbuf
- 缓冲区length
- 包长度
PacketParseException
- parse erro
PacketParseException
- è§£æžé”™è¯¯Method Detail |
---|
public String getPacketName()
getPacketName
in class BasicInPacket
protected void parseBody(ByteBuffer buf) throws PacketParseException
Packet
parseBody
in class Packet
buf
- ByteBuffer
PacketParseException
- if parse error
如果解æžå‡ºé”™
|
JML | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |