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

📄 basicfamilyprocessor.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
     * 
     * @param in
     */
    private void processWeatherOpReply(BasicInPacket in) {
    	WeatherOpReplyPacket packet = (WeatherOpReplyPacket)in;
    	QQEvent e;
    	switch(packet.replyCode) {
    		case QQ.QQ_REPLY_OK:
    			e = new QQEvent(packet);
    			if(packet.province == null)
    				e.type = QQEvent.QQ_GET_WEATHER_FAIL;
    			else 
    				e.type = QQEvent.QQ_GET_WEATHER_SUCCESS;
    			client.fireQQEvent(e);
    			break;
    		default:
       			e = new QQEvent(packet);
				e.type = QQEvent.QQ_GET_WEATHER_FAIL;
				client.fireQQEvent(e);
				break;
    	}
	}

	/**
     * 处理发送短信回复事件
     * 
     * @param in
     */
    private void processSendSMSReply(BasicInPacket in) {
    	SendSMSReplyPacket packet = (SendSMSReplyPacket)in;
    	QQEvent e = new QQEvent(packet);
    	e.type = QQEvent.QQ_SMS_SENT;
    	client.fireQQEvent(e);
	}

	/**
     * 处理好友等级回复包
     * 
     * @param in
     */
    private void processFriendLevelOpReply(BasicInPacket in) {
    	FriendLevelOpReplyPacket packet = (FriendLevelOpReplyPacket)in;
    	QQEvent e = new QQEvent(packet);
    	e.type = QQEvent.QQ_GET_FRIEND_LEVEL_SUCCESS;
    	client.fireQQEvent(e);
	}

	/**
     * 处理用户属性回复包
     * 
     * @param in
     */
    private void processUserPropertyOpReply(BasicInPacket in) {
    	UserPropertyOpReplyPacket packet = (UserPropertyOpReplyPacket)in;
    	QQEvent e = new QQEvent(packet);
    	e.type = QQEvent.QQ_GET_USER_PROPERTY_SUCCESS;
    	client.fireQQEvent(e);
	}

	/**
     * 处理个性签名操作回复包
     * 
     * @param in
     */
    private void processSignatureOpReply(BasicInPacket in) {
    	QQEvent e;
    	SignatureOpReplyPacket packet = (SignatureOpReplyPacket)in;
    	if(packet.replyCode == QQ.QQ_REPLY_OK) {
    		switch(packet.subCommand) {
    			case QQ.QQ_SUB_CMD_MODIFY_SIGNATURE:
    				e = new QQEvent(packet);
    				e.type = QQEvent.QQ_MODIFY_SIGNATURE_SUCCESS;
    				client.fireQQEvent(e);
    				break;
    			case QQ.QQ_SUB_CMD_DELETE_SIGNATURE:
    				e = new QQEvent(packet);
    				e.type = QQEvent.QQ_DELETE_SIGNATURE_SUCCESS;
    				client.fireQQEvent(e);
    				break;
    			case QQ.QQ_SUB_CMD_GET_SIGNATURE:
      				e = new QQEvent(packet);
    				e.type = QQEvent.QQ_GET_SIGNATURE_SUCCESS;
    				client.fireQQEvent(e);
    				break;
    		} 
    	} else {
    		switch(packet.subCommand) {
    			case QQ.QQ_SUB_CMD_MODIFY_SIGNATURE:
    				e = new QQEvent(packet);
    				e.type = QQEvent.QQ_MODIFY_SIGNATURE_FAIL;
    				client.fireQQEvent(e);
    				break;
    			case QQ.QQ_SUB_CMD_DELETE_SIGNATURE:
    				e = new QQEvent(packet);
    				e.type = QQEvent.QQ_DELETE_SIGNATURE_FAIL;
    				client.fireQQEvent(e);
    				break;
    			case QQ.QQ_SUB_CMD_GET_SIGNATURE:
      				e = new QQEvent(packet);
    				e.type = QQEvent.QQ_GET_SIGNATURE_FAIL;
    				client.fireQQEvent(e);
    				break;
    		} 
    	}
	}

	/**
     * 处理认证消息发送包
     * 
     * @param in
     */
    private void processAuthorizeReply(BasicInPacket in) {
    	QQEvent e;
    	AuthorizeReplyPacket packet = (AuthorizeReplyPacket)in;
    	switch(packet.replyCode) {
    		case QQ.QQ_REPLY_OK:
    			e = new QQEvent(packet);
    			e.type = QQEvent.QQ_AUTHORIZE_SEND_SUCCESS;
    			client.fireQQEvent(e);
    			break;
    		default:
    			e = new QQEvent(packet);
				e.type = QQEvent.QQ_AUTHORIZE_SEND_FAIL;
				client.fireQQEvent(e);
				break;
    	}
	}

	/**
     * 处理未知命令包,有些和协议无关的包也使用这个命令,比如ErrorPacket
     * 
     * @param in
     */
    private void processUnknown(BasicInPacket in) {
        QQEvent e = null;
        if(in instanceof ErrorPacket) {
            ErrorPacket error = (ErrorPacket)in;
            switch(error.errorCode) {
                case ErrorPacket.ERROR_CONNECTION_BROKEN:
                    e = new QQEvent(error);
                	e.type = QQEvent.QQ_CONNECTION_BROKEN;
                	break;
                case ErrorPacket.ERROR_TIMEOUT:
                	OutPacket packet = error.timeoutPacket;
                    switch(packet.getCommand()) {
                    	case QQ.QQ_CMD_KEEP_ALIVE:
                    		// 说明连接已经丢失
                    		e = new QQEvent(packet);
                    		e.type = QQEvent.QQ_CONNECTION_LOST;
                    		break;
                    	default:
                        	e = new QQEvent(packet);
                    		e.type = QQEvent.QQ_OPERATION_TIMEOUT;
                    		e.operation = packet.getCommand();
                    		break;
                    }
                    break;
                case ErrorPacket.ERROR_PROXY:
                	e = new QQEvent(error);
                	e.type = QQEvent.QQ_PROXY_ERROR;
                	break;
                case ErrorPacket.ERROR_NETWORK:
                	e = new QQEvent(error);
                	e.type = QQEvent.QQ_NETWORK_ERROR;
                	break;
                case ErrorPacket.RUNTIME_ERROR:
                	e = new QQEvent(error);
                	e.type = QQEvent.QQ_RUNTIME_ERROR;
                	break;
            }
        }
        
        if(e != null)
        	client.fireQQEvent(e);
    }

    /**
     * 处理高级搜索的回复包
     * 
     * @param in
     */
    private void processAdvancedSearchReply(BasicInPacket in) {
        QQEvent e;
        AdvancedSearchUserReplyPacket packet = (AdvancedSearchUserReplyPacket)in;
        
        if(packet.replyCode == QQ.QQ_REPLY_OK && !packet.finished) {
            log.debug("高级搜索成功");
            e = new QQEvent(packet);
            e.type = QQEvent.QQ_ADVANCED_SEARCH_USER_SUCCESS;
            client.fireQQEvent(e);
        } else if(packet.replyCode == QQ.QQ_REPLY_ADVANCED_SEARCH_END || packet.finished) {
            log.debug("高级搜索完毕");
            e = new QQEvent(packet);
            e.type = QQEvent.QQ_ADVANCED_SEARCH_USER_END;
            client.fireQQEvent(e);
        } else
            log.debug("高级搜索返回未知回复码");
    }

    /**
     * 处理请求登录令牌的回复包
     * 
     * @param in
     */
    private void processRequestLoginTokenReply(BasicInPacket in) {
        QQEvent e;
        RequestLoginTokenReplyPacket packet = (RequestLoginTokenReplyPacket)in;
        
        if(packet.replyCode == QQ.QQ_REPLY_OK) {
            log.debug("得到登录令牌成功");
            user.setLoginToken(packet.loginToken);
            e = new QQEvent(packet);
            e.type = QQEvent.QQ_GET_LOGIN_TOKEN_SUCCESS;
            client.fireQQEvent(e);
        } else {
            log.debug("得到登录令牌失败");
            e = new QQEvent(packet);
            e.type = QQEvent.QQ_GET_LOGIN_TOKEN_FAIL;
            client.fireQQEvent(e);
        }
    }

	/**
	 * 处理群命令的回复包
	 * 
	 * @param in
	 * @throws PacketParseException
	 */
	private void processClusterCommandReply(BasicInPacket in) {
		ClusterCommandReplyPacket packet = (ClusterCommandReplyPacket)in;

		switch(packet.subCommand) {
			case QQ.QQ_CLUSTER_CMD_CREATE_CLUSTER:
				processClusterCreateReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_ACTIVATE_CLUSTER:
				processClusterActivateReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_ACTIVATE_TEMP:
				processClusterActivateTempReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_MODIFY_MEMBER:
				processClusterModifyMember(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_GET_CLUSTER_INFO:
				processClusterGetInfoReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_GET_ONLINE_MEMBER:
				processClusterGetOnlineMemberReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_GET_MEMBER_INFO:
				processClusterGetMemberInfoReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_EXIT_CLUSTER:
				processClusterExitReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_DISMISS_CLUSTER:
				processClusterDismissReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER:
				processClusterJoinReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH:
				processClusterJoinAuthReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_MODIFY_CLUSTER_INFO:
				processClusterModifyInfoReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_SEARCH_CLUSTER:
				processClusterSearchReply(packet);
				break;
			// 这个命令已经过时
//			case QQ.QQ_CLUSTER_CMD_SEND_IM:
//				processClusterSendIMReply(packet);
//				break;
			case QQ.QQ_CLUSTER_CMD_SEND_IM_EX:
			    processClusterSendIMExReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_CREATE_TEMP:
			    processClusterCreateTempClusterReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_SEND_TEMP_IM:
			    processClusterSendTempClusterIMReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_EXIT_TEMP:
			    processClusterExitTempClusterReply(packet);	
				break;
			case QQ.QQ_CLUSTER_CMD_GET_TEMP_INFO:
			    processClusterGetTempClusterInfoReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_MODIFY_TEMP_MEMBER:
			    processClusterModifyTempClusterMemberReply(packet);	
				break;
			case QQ.QQ_CLUSTER_CMD_SUB_CLUSTER_OP:
				processClusterSubClusterOpReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_UPDATE_ORGANIZATION:
				processUpdateOrganizationReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_COMMIT_ORGANIZATION:
				processCommitOrganizationReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_COMMIT_MEMBER_ORGANIZATION:
				processCommitMemberOrganizationReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_MODIFY_TEMP_INFO:
				processModifyTempClusterInfoReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_GET_CARD_BATCH:
				processGetCardBatchReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_GET_CARD:
				processGetCardReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_MODIFY_CARD:
				processModifyCardReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_SET_ROLE:
				processSetRoleReply(packet);
				break;
			case QQ.QQ_CLUSTER_CMD_TRANSFER_ROLE:
				processTransferRoleReply(packet);
				break;
		}
	}

    /**
     * 处理激活临时群回复包
     * 
     * @param packet
     */
    private void processClusterActivateTempReply(ClusterCommandReplyPacket packet) {
		QQEvent e;
		if(packet.replyCode == QQ.QQ_REPLY_OK) {
			log.debug("临时群激活成功");
			e = new QQEvent(packet);
			e.type = QQEvent.QQ_ACTIVATE_TEMP_CLUSTER_SUCCESS;
			client.fireQQEvent(e);
		} else {
			log.debug("群激活失败");
			ClusterCommandPacket ccp = (ClusterCommandPacket)policy.retrieveSent(packet);
			packet.clusterId = ccp.getClusterId();
			e = new QQEvent(packet);
			e.type = QQEvent.QQ_ACTIVATE_TEMP_CLUSTER_FAIL;
			client.fireQQEvent(e);
		}
	}

	/**
     * 处理解散群回复包
     * 
     * @param packet
     */
    private void processClusterDismissReply(ClusterCommandReplyPacket packet) {
    	QQEvent e;
    	if(packet.replyCode == QQ.QQ_REPLY_OK) {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_DISMISS_CLUSTER_SUCCESS;
    		client.fireQQEvent(e);
    	} else {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_DISMISS_CLUSTER_FAIL;
    		client.fireQQEvent(e);
    	}
	}

	/**
     * 处理转让身份回复包
     * 
     * @param packet
     */
    private void processTransferRoleReply(ClusterCommandReplyPacket packet) {
    	QQEvent e;
    	if(packet.replyCode == QQ.QQ_REPLY_OK) {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_TRANSFER_ROLE_SUCCESS;
    		client.fireQQEvent(e);
    	} else {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_TRANSFER_ROLE_FAIL;

⌨️ 快捷键说明

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