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

📄 basicfamilyprocessor.java

📁 MilyQQ是一个使用控制台的QQ客户端,基于LumaQQ的核心JQL包开发,只有一个可执行的jar包(MilyQQ.jar),携带方便,由于是Java程序,因此理论上应该可以运行于所有平台,不过基于
💻 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_REMOTE_CLOSED:
                    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;
            }
        }

        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("高级搜索返回未知回复码");
			System.err.println("高级搜索返回未知回复码");
    }

    /**
     * 处理请求登录令牌的回复包
     *
     * @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_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_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 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;
    		client.fireQQEvent(e);
    	}
	}

	/**
     * 处理设置成员角色回复包
     *
     * @param packet
     */
    private void processSetRoleReply(ClusterCommandReplyPacket packet) {
    	QQEvent e;
    	if(packet.replyCode == QQ.QQ_REPLY_OK) {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_SET_ROLE_SUCCESS;
    		client.fireQQEvent(e);
    	} else {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_SET_ROLE_FAIL;
    		client.fireQQEvent(e);
    	}
	}

	/**
     * 处理修改群名片回复包
     *
     * @param packet
     */
    private void processModifyCardReply(ClusterCommandReplyPacket packet) {
    	QQEvent e;
    	if(packet.replyCode == QQ.QQ_REPLY_OK) {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_MODIFY_CARD_SUCCESS;
    		client.fireQQEvent(e);
    	} else {
			ClusterCommandPacket ccp = (ClusterCommandPacket)monitor.retrieveRequest(packet);
			packet.clusterId = ccp.getClusterId();
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_MODIFY_CARD_FAIL;
    		client.fireQQEvent(e);
    	}
	}

	/**
     * 处理得到单个成员群名片信息回复包
     *
     * @param packet
     */
    private void processGetCardReply(ClusterCommandReplyPacket packet) {
    	QQEvent e;
    	if(packet.replyCode == QQ.QQ_REPLY_OK) {
    		e = new QQEvent(packet);
    		e.type = QQEvent.QQ_GET_CARD_SUCCESS;
    		client.fireQQEvent(e);
    	} else {
			ClusterCommandPacket ccp = (ClusterCommandPacket)monitor.retrieveRequest(packet);
			packet.clusterId = ccp.getClusterId();

⌨️ 快捷键说明

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