⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qqclient.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
     * 
     * @param page
     * 		页号
     */
    public void batchDownloadFriendRemark(int page) {
    	if(user.isLoggedIn()) {
    		FriendDataOpPacket packet = new FriendDataOpPacket(user);
    		packet.setSubCommand(QQ.QQ_SUB_CMD_BATCH_DOWNLOAD_FRIEND_REMARK);
    		packet.setPage(page);
    		pool.send(MAIN.name, packet, false);	
    	}
    }
    
    /**
     * @param page
     * @param online
     * @param hasCam
     * @param provinceIndex
     * @param cityIndex
     * @param ageIndex
     * @param genderIndex
     * @return
     */
    public char searchUserAdvanced(
            int page,
            boolean online,
            boolean hasCam,
            int provinceIndex,
            int cityIndex,
            int ageIndex,
            int genderIndex) {
        if(user.isLoggedIn()) {
            AdvancedSearchUserPacket packet = new AdvancedSearchUserPacket(user);
            packet.setPage((char)page);
            packet.setSearchOnline(online);
            packet.setHasCam(hasCam);
            packet.setProvinceIndex((char)provinceIndex);
            packet.setCityIndex((char)cityIndex);
            packet.setAgeIndex((byte)ageIndex);
            packet.setGenderIndex((byte)genderIndex);
    		pool.send(MAIN.name, packet, false);	
            return packet.getSequence();
        } else
            return 0;
    }
    
    /**
     * 搜索所有的在线用户
     * @param page 页号,从0开始
     * @return
     * 		包序号
     */
    public char searchUser(int page) {
    	if(user.isLoggedIn()) {
    		SearchUserPacket packet = new SearchUserPacket(user);
    		packet.setPage(page);
    		pool.send(MAIN.name, packet, false);	
	        return packet.getSequence();
    	} else
    	    return 0;
    }
    
    /**
     * 自定义搜索用户
     * @param page 页号
     * @param qqNum 要搜索的QQ号字符串形式
     * @param nick 要搜索的昵称
     * @param email 要搜索的email
     * @param matchEntire 字符串是否完全匹配
     * @return
     * 		包序号
     */
    public char searchUser(int page, String qqStr, String nick, String email) {
    	if(user.isLoggedIn()) {
    		SearchUserPacket packet = new SearchUserPacket(user);
    		packet.setSearchType(QQ.QQ_SEARCH_CUSTOM);
    		packet.setPage(page);
    		packet.setQQStr(qqStr);
    		packet.setNick(nick);
    		packet.setEmail(email);
    		pool.send(MAIN.name, packet, false);	
	        return packet.getSequence();
    	} else
    	    return 0;
    }
    
    /**
     * 添加一个好友
     * @param qqNum 要添加的人的QQ号
     * @return 发送出的包的序号
     */
    public char addFriend(int qqNum) {
    	if(user.isLoggedIn()) {
	        AddFriendExPacket packet = new AddFriendExPacket(user);
	        packet.setTo(qqNum);
    		pool.send(MAIN.name, packet, false);	
	        return packet.getSequence();
    	}
    	return 0;
    }
    
    /**
     * 删除一个好友
     * @param qqNum 要删除的好友的QQ号
     * @return 如果包发送成功则返回包序号,否则返回0
     */
    public char deleteFriend(int qqNum) {
    	if(user.isLoggedIn()) {
	        DeleteFriendPacket packet = new DeleteFriendPacket(user);
	        packet.setTo(qqNum);
    		pool.send(MAIN.name, packet, true);		
	        return packet.getSequence();
    	}
    	return 0;
    }
    
    /**
     * 把某人的好友列表中的自己删除
     * @param qqNum 我想把我自己删除的好友的QQ号
     */
    public void removeSelfFrom(int qqNum) {
    	if(user.isLoggedIn()) {
	        RemoveSelfPacket packet = new RemoveSelfPacket(user);
	        packet.setRemoveFrom(qqNum);
    		pool.send(MAIN.name, packet, true);			
    	}
    }
    
    /**
     * 把好友从服务器端的好友列表中删除
     * 
     * @param qqNum
     * 		要删除的好友QQ号
     */
    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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);    
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, packet, true);	
        }
    }
    
    /**
     * 如果我要拒绝一个人加我为好友的请求,用这个方法发送拒绝消息
     * @param qqNum 请求加我的人的QQ号
     * @param message 附加消息
     */
    public void rejectAddMe(int qqNum, String message) {
    	if(user.isLoggedIn()) {
	        AddFriendAuthResponsePacket packet = new AddFriendAuthResponsePacket(user);
	        packet.setTo(qqNum);
	        packet.setMessage(message);
	        packet.setAction(QQ.QQ_MY_AUTH_REJECT);
    		pool.send(MAIN.name, packet, true);	
    	}
    }
    
    /**
     * 如果我要同意一个人加我为好友的请求,用这个方法发送同意消息
     * @param qqNum 请求加我的人的QQ号
     */
    public void approveAddMe(int qqNum) {
    	if(user.isLoggedIn()) {
	        AddFriendAuthResponsePacket packet = new AddFriendAuthResponsePacket(user);
	        packet.setTo(qqNum);
	        packet.setAction(QQ.QQ_MY_AUTH_APPROVE);
    		pool.send(MAIN.name, packet, true);	
    	}
    }
    
    /**
     * 下载好友分组
     * 
     * @param beginFrom
     * 		起始好友号
     */
    public void downloadFriend(int beginFrom) {
    	if(user.isLoggedIn()) {
    		DownloadGroupFriendPacket packet = new DownloadGroupFriendPacket(user);
    		packet.setBeginFrom(beginFrom);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, packet, true);	
    	}
    }
    
    /**
     * 下载分组名称
     */
    public void downloadGroup() {
    	if(user.isLoggedIn()) {
    		GroupDataOpPacket packet = new GroupDataOpPacket(user);
    		packet.setType(QQ.QQ_SUB_CMD_DOWNLOAD_GROUP_NAME);
    		pool.send(MAIN.name, 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);
    		pool.send(MAIN.name, 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);

⌨️ 快捷键说明

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