📄 qqclient.java
字号:
public void removeFriendFromList(int qqNum) {
if(user.isLoggedIn()) {
FriendDataOpPacket packet = new FriendDataOpPacket(user);
packet.setSubCommand(QQ.QQ_SUB_CMD_REMOVE_FRIEND_FROM_LIST);
packet.setQQ(qqNum);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 添加好友到服务器端的好友列表中
*
* @param group
* 好友的组号,我的好友组是0,然后是1,2,...
* @param qqNum
* 要添加的好友QQ号
*/
public void addFriendToList(int group, int qqNum) {
if(user.isLoggedIn()) {
UploadGroupFriendPacket packet = new UploadGroupFriendPacket(user);
packet.addFriend(group, qqNum);
gate.send(MAIN_PORT, packet, false);
}
}
/**
* 如果要加的人需要认证,用这个方法发送验证请求
* @param qqNum 要加的人的QQ号
* @param message 附加的请求消息内容
* @return
* 包序号
*/
public char sendAddFriendAuth(int qqNum, String message) {
if(user.isLoggedIn()) {
AuthorizePacket packet = new AuthorizePacket(user);
packet.setTo(qqNum);
packet.setMessage(message);
gate.send(MAIN_PORT, packet, true);
return packet.getSequence();
}
return 0;
}
/**
* 探测对方是否隐身,如来神掌,万无一失
*/
public void detectHidden(int receiver) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(QQ.QQ_IM_TYPE_UDP_REQUEST);
packet.setReceiver(receiver);
packet.setTransferType(QQ.QQ_TRANSFER_FACE);
packet.setFileName("");
packet.setFileSize(0);
packet.setFakeIp(true);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 发送传送文件请求包,我们把包序号用作会话序号返回
* @param filePath 文件名,不包含路径
* @param fileSize 文件大小
* @param directPort 直接端口
* @param udp true表示UDP方式
* @return 文件传输会话序号
*/
public char requestSendFile(int receiver, String filePath, int fileSize, int directPort, boolean udp) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(udp ? QQ.QQ_IM_TYPE_UDP_REQUEST : QQ.QQ_IM_TYPE_TCP_REQUEST);
packet.setReceiver(receiver);
packet.setFileName(filePath);
packet.setFileSize(fileSize);
packet.setDirectPort(directPort);
gate.send(MAIN_PORT, packet, true);
return packet.getSequence();
} else
return 0;
}
/**
* 取消发送文件
* @param receiver
* @param sequence
*/
public void cancelSendFile(int receiver, char sequence) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(QQ.QQ_IM_TYPE_REQUEST_CANCELED);
packet.setReceiver(receiver);
packet.setSessionId(sequence);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 发送同意接收文件包
* @param receiver 接收者
* @param directPort 我的直接端口
* @param sequence 会话序号
* @param udp true表示UDP方式
*/
public void acceptSendFile(int receiver, int directPort, char sequence, boolean udp) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(udp ? QQ.QQ_IM_TYPE_ACCEPT_UDP_REQUEST : QQ.QQ_IM_TYPE_ACCEPT_TCP_REQUEST);
packet.setReceiver(receiver);
packet.setDirectPort(directPort);
packet.setSessionId(sequence);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 发送拒绝接收文件包
* @param receiver 接收者
* @param sequence 会话序号
* @param udp true表示是UDP请求,false表示TCP请求
*/
public void rejectSendFile(int receiver, char sequence, boolean udp) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(udp ? QQ.QQ_IM_TYPE_REJECT_UDP_REQUEST : QQ.QQ_IM_TYPE_REJECT_TCP_REQUEST);
packet.setReceiver(receiver);
packet.setSessionId(sequence);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 发送通知端口信息包
* @param receiver
* @param directPort
* @param localIp
* @param localPort
* @param sequence
*/
public void notifyFilePort(int receiver, int directPort, byte[] localIp, int localPort, char sequence) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(QQ.QQ_IM_TYPE_NOTIFY_IP);
packet.setReceiver(receiver);
packet.setSessionId(sequence);
packet.setDirectPort(directPort);
packet.setLocalIp(localIp);
packet.setLocalPort(localPort);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 请求对方连接我
* @param receiver
* @param directPort
* @param sequence
*/
public void pleaseConnectMe(int receiver, int directPort, char sequence) {
if(user.isLoggedIn()) {
SendIMPacket packet = new SendIMPacket(user);
packet.setMessageType(QQ.QQ_IM_TYPE_ARE_YOU_BEHIND_FIREWALL);
packet.setReceiver(receiver);
packet.setSessionId(sequence);
packet.setDirectPort(directPort);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 如果我要拒绝一个人加我为好友的请求,用这个方法发送拒绝消息
* @param qqNum 请求加我的人的QQ号
* @param message 附加消息
*/
public void rejectAddMe(int qqNum, String message) {
if(user.isLoggedIn()) {
AddFriendAuthPacket packet = new AddFriendAuthPacket(user);
packet.setTo(qqNum);
packet.setMessage(message);
packet.setAction(QQ.QQ_MY_AUTH_REJECT);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 如果我要同意一个人加我为好友的请求,用这个方法发送同意消息
* @param qqNum 请求加我的人的QQ号
*/
public void approveAddMe(int qqNum) {
if(user.isLoggedIn()) {
AddFriendAuthPacket packet = new AddFriendAuthPacket(user);
packet.setTo(qqNum);
packet.setAction(QQ.QQ_MY_AUTH_APPROVE);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 下载好友分组
*
* @param beginFrom
* 起始好友号
*/
public void downloadFriend(int beginFrom) {
if(user.isLoggedIn()) {
DownloadGroupFriendPacket packet = new DownloadGroupFriendPacket(user);
packet.setBeginFrom(beginFrom);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 上传分组名称
*
* @param groups
*/
public void uploadGroup(List<String> groups) {
if(user.isLoggedIn()) {
GroupDataOpPacket packet = new GroupDataOpPacket(user);
packet.setType(QQ.QQ_SUB_CMD_UPLOAD_GROUP_NAME);
packet.setGroups(groups);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 下载分组名称
*/
public void downloadGroup() {
if(user.isLoggedIn()) {
GroupDataOpPacket packet = new GroupDataOpPacket(user);
packet.setType(QQ.QQ_SUB_CMD_DOWNLOAD_GROUP_NAME);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 创建一个临时群
*
* @param name
* 群名称
* @param type
* 临时群类型
* @param parentClusterId
* 父群内部ID
* @param members
* 成员QQ号数组
* @return
* 包序号
*/
/* public char createTemporaryCluster(String name, byte type, int parentClusterId, List<Integer> members) {
if(user.isLoggedIn()) {
ClusterCreateTempPacket packet = new ClusterCreateTempPacket(user);
packet.setType(type);
packet.setName(name);
packet.setMembers(members);
packet.setParentClusterId(parentClusterId);
gate.send(MAIN_PORT, packet, true);
return packet.getSequence();
}
return 0;
}
*/
/**
* 创建一个固定群
* @param name 群名称
* @param notice 群声明
* @param description 群描述
* @param members 群成员
* @param authType 群认证类型
* @param category 群的分类
*/
/* public void createPermanentCluster(String name, String notice, String description, List<Integer> members, int category, byte authType) {
if(user.isLoggedIn()) {
ClusterCreatePacket packet = new ClusterCreatePacket(user);
packet.setType(QQ.QQ_CLUSTER_TYPE_PERMANENT);
packet.setAuthType(authType);
packet.setCategory(category);
packet.setName(name);
packet.setNotice(notice);
packet.setDescription(description);
packet.setMembers(members);
gate.send(MAIN_PORT, packet, true);
}
}
*/
/**
* 请求群的信息
*
* @param clusterId
* 群内部ID
*/
public void getClusterInfo(int clusterId) {
if(user.isLoggedIn()) {
ClusterGetInfoPacket packet = new ClusterGetInfoPacket(user);
packet.setClusterId(clusterId);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 设置群成员角色
*
* @param clusterId
* 群内部id
* @param qq
* 需要设置的成员
* @param opCode
* 操作码
*/
/* public void setMemberRole(int clusterId, int qq, byte opCode) {
if(user.isLoggedIn()) {
ClusterSetRolePacket packet = new ClusterSetRolePacket(user);
packet.setClusterId(clusterId);
packet.setQq(qq);
packet.setOpCode(opCode);
gate.send(MAIN_PORT, packet, false);
}
}
*/
/**
* 转让身份
*
* @param clusterId
* 群内部id
* @param qq
* 转让到的qq号
*/
/* public void transferRole(int clusterId, int qq) {
if(user.isLoggedIn()) {
ClusterTransferRolePacket packet = new ClusterTransferRolePacket(user);
packet.setClusterId(clusterId);
packet.setQq(qq);
gate.send(MAIN_PORT, packet, false);
}
}
*/
/**
* 批量得到群名片
*
* @param clusterId
* @param start
*/
public void getCardBatch(int clusterId, int start) {
if(user.isLoggedIn()) {
ClusterGetCardBatchPacket packet = new ClusterGetCardBatchPacket(user);
packet.setClusterId(clusterId);
packet.setStart(start);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 得到某个成员的群名片
*
* @param clusterId
* @param qq
*/
public void getCard(int clusterId, int qq) {
if(user.isLoggedIn()) {
ClusterGetCardPacket packet = new ClusterGetCardPacket(user);
packet.setClusterId(clusterId);
packet.setQQ(qq);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 修改群名片
*
* @param clusterId
* @param card
*/
public void modifyCard(int clusterId, Card card) {
if(user.isLoggedIn()) {
ClusterModifyCardPacket packet = new ClusterModifyCardPacket(user);
packet.setClusterId(clusterId);
packet.setCard(card);
gate.send(MAIN_PORT, packet, true);
}
}
/**
* 更新组织架构
*
* @param clusterId
* 群内部ID
*/
/* public void updateOrganization(int clusterId) {
if(user.isLoggedIn()) {
ClusterUpdateOrganizationPacket packet = new ClusterUpdateOrganizationPacket(user);
packet.setClusterId(clusterId);
gate.send(MAIN_PORT, packet, true);
}
}
*/
/**
* 提交组织架构
*
* @param clusterId
* @param organizations
*/
/* public char commitOrganization(int clusterId, List<QQOrganization> organizations) {
if(user.isLoggedIn()) {
ClusterCommitOrganizationPacket packet = new ClusterCommitOrganizationPacket(user);
packet.setClusterId(clusterId);
packet.setOrganizations(organizations);
gate.send(MAIN_PORT, packet, true);
return packet.getSequence();
}
return 0;
}
*/
/**
* 提交成员组织
*
* @param clusterId
* @param members
* @return
* 包序号
*/
/* public char commitMemberOrganization(int clusterId, List<Member> members) {
if(user.isLoggedIn()) {
ClusterCommitMemberOrganizationPacket packet = new ClusterCommitMemberOrganizationPacket(user);
packet.setClusterId(clusterId);
packet.setMembers(members);
gate.send(MAIN_PORT, packet, true);
return packet.getSequence();
}
return 0;
}
*/
/**
* 请求临时群信息
*
* @param type
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -